首頁  >  文章  >  web前端  >  關於正規表示式的相關理解

關於正規表示式的相關理解

jacklove
jacklove原創
2018-05-21 15:33:011629瀏覽

本篇將會詳解正規表達的相關知識。

\d,\w,\s,[a-zA-Z0-9],\b,.,*, ,?,x{3},^,$分別是什麼?

\d:元字符,匹配一個數字,等價於[0-9](匹配0到9中的一個);
\w:元字符,匹配字母或數字或下劃線或漢字,等價於[0-9a-zA-Z_];
\s:元字符,匹配任意的空格符;
[a-zA-Z0-9]:[]規定了一個範圍,符合當中的其中一個,範例則符合a-z/A-Z/0-9中的一個,相當於\w(除了漢字);
\b:元字符,符合單字的開始或結束(單字邊界):

var a= "hello helloworld";var reg = /\bhello\b/;
a.match(reg);//結果為"hello";

# .:元字符,匹配除換行符以外的所有字符;
*:限定符,重複0次或更多次;
:限定符,重複1次或更多次,最少1次;
? :限定符,重複0次或1次;
x{3}:限定符,x出現3次({n}重複n次;{n,m}重複n-m次(包括n,m);{ n,}重複最少n次;{,m}重複最多m次);
:在[]中意為取反([abc]匹配abc中任一個,[abc]匹配除abc外的任意字元) ;其他時候可以匹配字串的開頭;
$:匹配字串的結束;(^hello&:匹配以hello開頭,hello結尾的字串)

寫一個函數trim(str),去除字串兩邊的空白字元

function trim(str) {    return str.replace(/^\s+|\s+$/g,'') //匹配开头或结尾的空白字符,替换成'';
 }

寫一個函數isEmail(str),判斷使用者輸入的是不是郵件信箱

function isEmail(str) {    var reg = /^[a-zA-Z\d_]+\@[a-zA-Z\d]+\.[a-zA-Z\d]+$/g;    return reg.test(str);
 }

寫一個函數isPhoneNum(str),判斷使用者輸入的是不是手機號碼

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

寫一個函數isValidUsername(str),判斷使用者輸入的是不是合法的使用者名稱(長度6-20個字符,只能包括字母、數字、底線)

function isValidUsername(str) {    var reg = /^([a-zA-Z\d_]){6,20}$/g;    return reg.test(str);
}

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

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;
    }
}

寫一個正規表示式,得到如下字串裡所有的顏色

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);
//输出[""hunger" , hello "world""];

//正規表示式預設是貪婪模式,會在滿足條件的情況下盡可能多的進行匹配;
//改寫程式碼

var str = 'hello  "hunger" , hello "world"';
var pat =  /".*?"/g;  //添加?改成非贪婪模式,尽可能少的匹配;
str.match(pat); //[""hunger"", ""world""]

本篇對正規表示進行了相關的解釋,更多相關的內容請關注php中文網。

相關推薦:

Javascript中關於this的用法

關於Math、陣列、Date的相關範例

HTML5/CSS3相關的知識解說

以上是關於正規表示式的相關理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn