正則表達(dá)式為標(biāo)書(shū)字符串規(guī)則的表達(dá)式。下面為兩個(gè)例子為在 JavaScript 中的使用,
/pattern/attrs
new RegExp(pattern, attrs)
錨點(diǎn)用于匹配一個(gè)位置,下列為常用的錨點(diǎn)
^
起始的位置 /^http/
$
結(jié)尾的位置 /\.jpg$/
\b
單詞邊界字符類(lèi)用于匹配一類(lèi)字符中的一個(gè),下面為幾個(gè)常用的例子,
[abc]
可用于匹配 a
b
還有 c
[0-9]
可用于匹配一個(gè)數(shù)字[^0-9]
可用于匹配一個(gè)非數(shù)字[a-z]
可用于匹配一個(gè)字母.
任意字符但換行符除外元字符為具有特殊意義的字符。常見(jiàn)的有,
^
, $
, \b
\d
用于匹配數(shù)字 [0-9]
\D
用于匹配 [^\d]
\s
用于匹配空白符\S
用于匹配非空白符 [^\s]
\w
用于匹配任意單詞字符(例如程序中的變量字符) [A-Za-z0-9_]
\W
用于匹配非單詞字符 [^\W]
量詞用于表現(xiàn)字符出現(xiàn)的次數(shù)??捎玫倪B詞如下,
{m,n}
用于表示出現(xiàn) m
到 n
次之間。*
用于表示出現(xiàn) 0
到無(wú)窮之間也就等同于 {0,}
?
用于表示出現(xiàn) 0
次到 1
次也等同于 {0,1}
+
用于表現(xiàn)出現(xiàn) 1
次以及一次以上也等同于 {1,}
轉(zhuǎn)義符需要在匹配的字符是元字符的時(shí)候使用。使用 \
來(lái)進(jìn)行轉(zhuǎn)移即可。
多選分支用于表示或的概念。/thi(c|n)k/
其又等同于 /thi[cn]k/
。其還可以用于匹配文件擴(kuò)展名 /\.(png|jpg|jpeg|gif)$/
。
其用于測(cè)試正則表達(dá)式與指定字符串是否匹配。
/123/.test(123); // true
/123/.test(111); // false
/123/.test('x123'); // true
其用于保存所匹配到的字符串為后續(xù)開(kāi)發(fā)所用。()
可用于捕獲,正則表達(dá)式再運(yùn)行時(shí)會(huì)將其保存下來(lái),(?:)
則不予保存。
// str.match(regexp)
var url = 'http://www.google.com/query?test=li-xinyang#cool';
var reg = /(https?:)\/\/([^\/]+)(\/[^\?]*)?(\?[^#]*)?(#.*)?/;
var arr = url.match(reg);
var protocol = arr[1];
var host = arr[2];
var pathname = arr[3];
var search = arr[4];
var hash = arr[5];
regexpObj.exec(str)
可以提供更強(qiáng)大的檢索,它可以提供更詳盡的結(jié)果 index
也可以提供過(guò)程狀態(tài) lastIndex
。
str.replace(regex/substr, replacement)
可以使用正則表達(dá)式來(lái)對(duì)字符串進(jìn)行替換。