1微宝、\d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分別是什么?
\d:數(shù)字0-9
\w:單詞字符撵彻,字母艺演、數(shù)字下劃線
\s:空白符
[a-zA-Z0-9]:小寫字母a-z 大寫字母A-Z 數(shù)字0-9
\b:字符邊界
.:除換行和空白字符以外的字符
*:量詞,表示0到多個(gè)
+:量詞贱傀,表示1到多個(gè)
?:量詞惨撇,表示零次或1次
x{3}:表示x匹配3次
^:表示開頭的意思,在[]中表示非
$:表示結(jié)尾
2府寒、寫一個(gè)函數(shù)trim(str)魁衙,去除字符串兩邊的空白字符
function trim(str){
return str.replace(/^\s+|\s+$/g, '') //\s+$而不是\s$是避免字符串后面有多個(gè)空白符
}
3、 寫一個(gè)函數(shù)isEmail(str)株搔,判斷用戶輸入的是不是郵箱
function isEmail(str){
var reg = /^\w+@\w+[.]\w+$/g
return reg.test(str)
}
4剖淀、寫一個(gè)函數(shù)isPhoneNum(str),判斷用戶輸入的是不是手機(jī)號(hào)
function isPhoneNum(str){
var reg = /^1[3|5|7|8]\d{9}$/g
return reg.test(str)
}
5邪狞、寫一個(gè)函數(shù)isValidUsername(str)祷蝌,判斷用戶輸入的是不是合法的用戶名(長度6-20個(gè)字符,只能包括字母帆卓、數(shù)字巨朦、下劃線)
function isValidUsername(str){
var reg = /^\w{6,20}$/g
return reg.test(str)
}
6、寫一個(gè)函數(shù)isValidPassword(str), 判斷用戶輸入的是不是合法密碼(長度6-20個(gè)字符剑令,只包括大寫字母糊啡、小寫字母、數(shù)字吁津、下劃線棚蓄,且至少至少包括兩種)
function isValidPassword(str){
if(!/\w{6,20}$/g.test(str)) return false
if(/^[0-9]{6,20}$/g.test(str)) return false
if(/^[a-z]{6,20}$/g.test(str)) return false
if(/^[A-Z]{6,20}$/g.test(str)) return false
if(/^_{6,20}$/g.test(str)) return false
return true
}
7、寫一個(gè)正則表達(dá)式碍脏,得到如下字符串里所有的顏色
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 str = 'hello "hunger" , hello "world"';
var pat = /".*?"/g;
str.match(pat);
非貪婪模式所以輸出["hunger" ,"world"]