\d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分別是什么?
\d:元字符,匹配一個數(shù)字,等價于[0-9](匹配0到9中的一個);
\w:元字符,匹配字母或數(shù)字或下劃線或漢字,等價于[0-9a-zA-Z_];
\s:元字符,匹配任意的空白符;
[a-zA-Z0-9]:[]規(guī)定了一個范圍,匹配當(dāng)中的其中一個,示例則匹配a-z/A-Z/0-9中的一個,相當(dāng)于\w(除了漢字);
\b:元字符,匹配單詞的開始或結(jié)束(單詞邊界):
var a= "hello helloworld";var reg = /\bhello\b/;
a.match(reg);//結(jié)果為"hello";
.:元字符,匹配除換行符以外的所有字符;
*:限定符,重復(fù)0次或更多次;
+:限定符,重復(fù)1次或更多次,最少1次;
?:限定符,重復(fù)0次或1次;
x{3}:限定符,x出現(xiàn)3次({n}重復(fù)n次;{n,m}重復(fù)n-m次(包括n,m);{n,}重復(fù)最少n次;{,m}重復(fù)最多m次);
:在[]中意為取反([abc]匹配abc中任意一個,[abc]匹配除abc外的任意字符);其他時候可以匹配字符串的開頭;
$:匹配字符串的結(jié)束;(^hello&:匹配以hello開頭,hello結(jié)尾的字符串)
寫一個函數(shù)trim(str),去除字符串兩邊的空白字符
function trim(str) { return str.replace(/^\s+|\s+$/g,'') //匹配開頭或結(jié)尾的空白字符,替換成''; }
寫一個函數(shù)isEmail(str),判斷用戶輸入的是不是郵箱
function isEmail(str) { var reg = /^[a-zA-Z\d_]+\@[a-zA-Z\d]+\.[a-zA-Z\d]+$/g; return reg.test(str); }
寫一個函數(shù)isPhoneNum(str),判斷用戶輸入的是不是手機(jī)號
function isPhoneNum(str) { var reg = /^1[3578]\d{9}$/g; return reg.test(str); }
寫一個函數(shù)isValidUsername(str),判斷用戶輸入的是不是合法的用戶名(長度6-20個字符,只能包括字母、數(shù)字、下劃線)
function isValidUsername(str) { var reg = /^([a-zA-Z\d_]){6,20}$/g; return reg.test(str); }
寫一個函數(shù)isValidPassword(str), 判斷用戶輸入的是不是合法密碼(長度6-20個字符,只包括大寫字母、小寫字母、數(shù)字、下劃線,且至少包括兩種)
function isValidPassword(str) { if (/^[a-zA-Z0-9_]{6,20}$/g.test(str)) { if (/^[a-z]{6,20}$/g.test(str) || /^[A-Z]{6,20}$/g.test(str) || /^[0-9]{6,20}$/g.test(str) || /^[_]{6,20}$/g.test(str)) { return false; }else { return true; } }else { return false; } }
寫一個正則表達(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-f\d]{6}/ig;var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee";console.log( subj.match(re) )
下面代碼輸出什么? 為什么? 改寫代碼,讓其輸出[""hunger"", ""world""]
var str = 'hello "hunger" , hello "world"';var pat = /".*"/g; str.match(pat); //
//正則表達(dá)式默認(rèn)情況下是貪婪模式,會在滿足條件的情況下盡可能多的進(jìn)行匹配;
//改寫代碼
var str = 'hello "hunger" , hello "world"'; var pat = /".*?"/g; //添加?改成非貪婪模式,盡可能少的匹配; str.match(pat); //[""hunger"", ""world""]
本篇對正則表達(dá)進(jìn)行了相關(guān)的解釋,更多相關(guān)的內(nèi)容請關(guān)注Gxl網(wǎng)。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com