題目1: \d粥鞋,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分別是什么?
\d 表示數(shù)字
\w 表示字母衙吩、數(shù)字和下劃線
\s 表示空白符
[a-zA-Z0-9] 表示a-z A-Z 0-9 這些字符中的任意一個(gè)
\b 表示單詞邊界
. 表示除了回車符和換行符之外的所有字符
* 表示出現(xiàn)零次或多次(任意次)
+ 表示出現(xiàn)一次或多次
?表示出現(xiàn)零次或一次
x{3} 表示x出現(xiàn)3次
^ 表示以xxx開頭
$ 表示以xxx結(jié)尾
題目2: 寫一個(gè)函數(shù)trim(str)吩案,去除字符串兩邊的空白字符
function trim(str){
return str.replace(/^\s+|\s+$/g,"");
}
題目3: 寫一個(gè)函數(shù)isEmail(str)坟岔,判斷用戶輸入的是不是郵箱
function isEmail(str){
var reg = /^\w+@\w+/;
return reg.test(str);
}
isEmail("w@ss.com");
題目4: 寫一個(gè)函數(shù)isPhoneNum(str)顶瞳,判斷用戶輸入的是不是手機(jī)號(hào)
function isPhoneNum(str){
var reg = /^1\d{10}$/
return reg.test(str);
}
isPhoneNum("12222222222");
題目5: 寫一個(gè)函數(shù)isValidUsername(str),判斷用戶輸入的是不是合法的用戶名(長(zhǎng)度6-20個(gè)字符赶促,只能包括字母液肌、數(shù)字、下劃線)
function isValidUsername(str){
var reg = /\w{6,20}$/;
return reg.test(str);
}
isValidUsername("aiyizhen_");
題目6. 寫一個(gè)函數(shù)isValidPassword(str), 判斷用戶輸入的是不是合法密碼(長(zhǎng)度6-20個(gè)字符鸥滨,只包括大寫字母矩屁、小寫字母、數(shù)字爵赵、下劃線吝秕,且至少至少包括兩種)
function isValidPassword(str){
if(!/^\w{6,20}$/) return false;
if(/^[a-z]{6,20}$/) return false;
if(/^[A-Z]{6,20}$/) return false;
if(/^\d{6,20}$/) return false;
if(/_{6,20}$/) return false;
return true;
}
isValidPassword("jfakjgljalgj");
題目7: 寫一個(gè)正則表達(dá)式,得到如下字符串里所有的顏色
var re = /*正則...*/
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "
console.log( subj.match(re) ) // ['#121212', '#AA00ef']
var re = /#[a-zA-Z0-9]{6}/;
var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "
console.log( subj.match(re) ) // ['#121212', '#AA00ef']
- 下面代碼輸出什么? 為什么? 改寫代碼空幻,讓其輸出['hunger', 'world'].
var str = 'hello "hunger" , hello "world"';
var pat = /".*"/g;
str.match(pat);
///////輸出[""hunger" , hello "world""]
///////原因是. 匹配除換行和行結(jié)束符外的任意單個(gè)字符烁峭,而 *是貪婪模式,在滿足條件的情況下秕铛,會(huì)盡可能多的匹配
var str = ' hello "hunger" , hello "world" ';
var pat = /".*?"/g;
str.match(pat); //["hunger", "world"]
//8. 下面代碼輸出什么? 為什么? 改寫代碼约郁,讓其輸出['hunger', 'world'].
var str = 'hello "hunger" , hello "world"';
var pat = /".*"/g;
str.match(pat);
///////輸出[""hunger" , hello "world""]
///////原因是. 匹配除換行和行結(jié)束符外的任意單個(gè)字符,而 *是貪婪模式但两,在滿足條件的情況下鬓梅,會(huì)盡可能多的匹配
var str = ' hello "hunger" , hello "world" ';
var pat = /".*?"/g;
str.match(pat); //["hunger", "world"]