進階任務7:正則表達式

題目1: \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分別是什么?

  • \d: 等價于[0~9],數字字符;
  • \w: 等價于[azAZ_0~9],單詞字符,字母、數字下劃線;
  • \s: 等價于[\t\n\x0B\f\r],空白字符;
  • [a-zA-Z0-9]: 表示字母a到z,A到Z,數字0到9;
  • \b:單詞邊界;
  • . : 表示除了回車和換行之外的所有字符;
  • *:出現零次或多次(任意次);
  • +:出現一次或多次(至少出現一次);
  • ?:出現零次或一次(最多出現一次);
  • x{3}:表示x出現3次;
  • ^:以xxx開頭;
  • $:以xxx結尾;

題目2: 寫一個函數trim(str),去除字符串兩邊的空白字符

function trim(str){
    return str.replace(/^\s+|\s+$/g, "");
}

題目3: 寫一個函數isEmail(str),判斷用戶輸入的是不是郵箱

 function isEmail(str){
  var email =(/^[A-Za-zd]+[A-za-zd._-]*@([A-Za-zd]+.[A-Za-zd._-]+/).test(str);
  return email;
}

題目4: 寫一個函數isPhoneNum(str),判斷用戶輸入的是不是手機號

 function isPhoneNum(str){
  var Num =(/^1[34578]\d{9}$/) .test(str);
  return Num;
}

題目5: 寫一個函數isValidUsername(str),判斷用戶輸入的是不是合法的用戶名(長度6-20個字符,只能包括字母、數字、下劃線)

function isValidUsername(str){
  var valid =(/^w\{6,20}$/).test( str);
  return valid;
}

題目6: 寫一個函數isValidPassword(str), 判斷用戶輸入的是不是合法密碼(長度6-20個字符,只包括大寫字母、小寫字母、數字、下劃線,且至少至少包括兩種)

function isValidPassword(str){
  if((/^[a-zA-Z0-9_]{6,20}$/).test(str)){
     if ((/^[A-Z]+$/).test(str)||(/^[a-z]+$/).test(str)||(/^[0-9]+$/).test(str)||(/^_+$/).test(str)){
         return "密碼太簡單";
       }
     else{
         return "輸入合法";
       } 
  }
  else{
     return "請輸入6-20位密碼";
  } 
}

題目7: 寫一個正則表達式,得到如下字符串里所有的顏色

var re = /#[\dA-Fa-f]{6}/g;
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "
console.log( subj.match(re) ) 

題目8: 下面代碼輸出什么? 為什么? 改寫代碼,讓其輸出[""hunger"", ""world""].

var str = 'hello  "hunger" , hello "world"';
var pat =  /".*"/g;
str.match(pat);//輸出[""hunger" , hello "world""],因為'.'表示除了回車符之外的所有字符'*'又表示出現一次或多次。
var pat =  /".*?"/g;//非貪婪模式可以輸出[""hunger"", ""world""]
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容