字符串是編程時涉及到的最多的一種數據結構,對字符串進行操作的需求幾乎無處不在。 正則表達式是一種用來匹配字符串的強有力的武器。它的設計思想是用一種描述性的語言來給字符串定義一個規則,凡是符合規則的字符串,我們就認為它“匹配”了。
/d可以匹配一個數字 '00/d'可以匹配'007' ,'/d/d/d'可以匹配'010'
/w可以匹配一個字母或數字 '/w/w'可以匹配'js'
/s可以匹配一個空格(也包括Tab等空白符)
/DWS都是表示匹配與小寫字母相反的匹配關系
/數字n表示指向第n個分組捕獲到的字符串文本的一個引用,能夠再次被匹配 /(/d+)(0*)/1/可以匹配‘22300223'
.可以匹配任意字符 'js.'可以匹配'jsp'、'jss'、'js!'
正則表達式量詞:
*表示任意個字符(包括0個)
+表示至少一個字符
?表示0個或1個字符
{n}表示n個字符
{n,m}表示n-m個字符
A|B可以匹配A或B (J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript'
^表示行的開頭 ^/d表示必須以數字開頭
$表示行的結束 /d$表示必須以數字結束
[]表示范圍,字符類
[a-zA-Z/_/$][0-9a-zA-Z/_/$]*可以匹配由字母或下劃線、$開頭,后接任意個由一個數字、字母或者下劃線、$組成的字符串,也就是JavaScript允許的變量名
[a-zA-Z/_/$][0-9a-zA-Z/_/$]{0, 19}更精確地限制了變量的長度是1-20個字符(前面1個字符+后面最多19個字符)
[] 中的^ 表示排除某個字符 [^#?] 表示除了?和#的所有字符
()表示捕獲型分組,可以將匹配的字符串進行分組,提取子串。
如果正則表達式中定義了組,就可以在RegExp對象上用exec()方法提取出子串來。
exec()匹配成功后,返回一個Array,第一個元素是正則表達式匹配到的整個字符串,后面的字符串表示匹配成功的子串。
exec()匹配失敗時返回null。
^(/d{3})-(/d{3,8})$分別定義了兩個組,可以直接從匹配的字符串中提取出區號和本地號碼:
var re = /^(/d{3})-(/d{3,8})$/;re.exec('010-12345'); // ['010-12345', '010', '12345']re.exec('010 12345'); // null
新聞熱點
疑難解答
圖片精選