1: \d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分別是什么?
字符 | 含義 |
---|---|
\d | 任意一個0-9之間的數字 |
\w | 等價于[0-9A-Za-z_] ;單詞字符,字母,數字,下劃線 |
[a-zA-Z0-9] | 任意一個字母或者數字,或者下劃線 |
\s | 等價于[\t\n\x0B\f\r] ;空白符 |
\b | 單詞邊界 |
. | 等價于[^\r\n] 除換行符回車符以外的所有字符 |
* | 出現零次或多次(任意次) |
+ | 出現一次或多次(+?,非貪婪模式,盡可能少匹配) |
? | 出現零次或一次 |
x{3} | x字符出現3次 |
^ | [^] 表示取反,/^xxx/ 表示以xxx開頭 |
$ | /xxx$/ 以xxx結尾 |
題目2: 寫一個函數trim(str),去除字符串兩邊的空白字符
function trim(str){
var reg=/\S.*\S/g
return str.match(reg)[0]//arr[0],arr.[0]錯誤
}
//方法二
function trim(str){
var reg=/^\s+|\s+$/g
return str.replace(reg,'')
}
題目3: 寫一個函數isEmail(str),判斷用戶輸入的是不是郵箱
function isEmail(str){
var reg=/^\w+@.+/g
return reg.test(str)
}
//123@@123不符合
function isEmail(str){
var reg=/^\w+@\w+[\.]\w+$/g
return reg.test(str)
}
//要求結尾$,排除123@qq.com123@qq.com
題目4: 寫一個函數isPhoneNum(str),判斷用戶輸入的是不是手機號
function isPhoneNum(str){
var reg=/^1\d{10}$/
return reg.test(str)
}
題目5: 寫一個函數isValidUsername(str),判斷用戶輸入的是不是合法的用戶名(長度6-20個字符,只能包括字母、數字、下劃線)
function isValidUsername(str){
var reg=/^\w{6,20}$/
return reg.test(str)
}
題目6: 寫一個函數isValidPassword(str), 判斷用戶輸入的是不是合法密碼(長度6-20個字符,只包括大寫字母、小寫字母、數字、下劃線,且至少至少包括兩種)
function isValidPassword(str){
var reg=/^\w{6,20}$/
if(!reg.test(str)){return false}
else if(/^[a-z]+$/.test(str)){return false}
else if(/^[A-Z]+$/.test(str)){return false}
else if(/^[0-9]+$/.test(str)){return false}
else if(/^[_]+$/.test(str)){return false}
else{
return true
}
}
//方法二
function isValidPassword(str){
var keyNot=/^\w{6,20}$/;
var key=/(^[A-Z]+$)|(^[a-z]+$)|(^[0-9]+$)|(^_+$)/;
if(keyNot.test(str)){
if(key.test(str)){
return "請輸入6-20位密碼(大寫字母、小寫字母、數字、下劃線,至少包含其中兩種)";
}
else {
return "設置成功"
}
}
else{
return "請輸入6-20位密碼(大寫字母、小寫字母、數字、下劃線,至少包含其中兩種)"
}
}
7: 寫一個正則表達式,得到如下字符串里所有的顏色
var re = /#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})(?=;)/g
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "
console.log( subj.match(re) ) // ['#121212', '#AA00ef']
題目8: 下面代碼輸出什么? 為什么? 改寫代碼,讓其輸出[""hunger"", ""world""].
var str = 'hello "hunger" , hello "world"';
var pat = /".*"/g;
str.match(pat);
//[""hunger" , hello "world""]
var pat = /".*?"/g;//["hunger"",""world""]