正則表達(dá)式
只能對(duì)字符串進(jìn)行操作茅坛,String類型可以
對(duì)比:
var a = “hhhkkkkyabc”悼泌;
alert(a.indexOf(“y”)鹦倚;//7
正則:alert(a.search(/y/))惩激;//7
正則聲明方式:1:? var reg1 = new RegExp(“y”少办,“i”)苞慢;
2:? /y/i
i 不區(qū)分大小寫
g 符合條件的全部
{}:代表量詞,如{2}是限制長度的
{1英妓,}如果第2個(gè)不寫代表無限
{3挽放,1}會(huì)報(bào)錯(cuò),第1個(gè)數(shù)字大小不能大于第2個(gè)的
+:代表{1蔓纠,}
辑畦?:代表{0,1}
*:代表{0腿倚,}
貪婪:只要符合多個(gè)的量詞纯出,它會(huì)優(yōu)先匹配多個(gè)的
match? 他會(huì)以數(shù)組的形式返回符合他條件的數(shù)據(jù)
找數(shù)字:(/\d+/g)
^:非,或頭部
$:尾部
替換:a.replace(/【a-zA-Z】/g敷燎,“”)
a.replace(/【a-zA-Z】/g暂筝,function(i){
return? “你好!”
})
var a = “asd1746”硬贯;
var re = /【a-z】+\d+/g焕襟;
alert(re.test(a));
test返回true或false
qq郵箱匹配:
var re = /^【1-9】{1}\d{4饭豹,9}@qq\.com$/鸵赖;
非打印字符
非打印字符也可以是正則表達(dá)式的組成部分。下表列出了表示非打印字符的轉(zhuǎn)義序列:
字符 描述
\cx 匹配由x指明的控制字符拄衰。例如它褪, \cM 匹配一個(gè) Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之一翘悉。否則茫打,將 c 視為一個(gè)原義的 'c' 字符。
\f 匹配一個(gè)換頁符妖混。等價(jià)于 \x0c 和 \cL包吝。
\n 匹配一個(gè)換行符。等價(jià)于 \x0a 和 \cJ源葫。
\r 匹配一個(gè)回車符诗越。等價(jià)于 \x0d 和 \cM。
\s 匹配任何空白字符息堂,包括空格嚷狞、制表符块促、換頁符等等。等價(jià)于 [ \f\n\r\t\v]床未。注意 Unicode 正則表達(dá)式會(huì)匹配全角空格符竭翠。
\S 匹配任何非空白字符。等價(jià)于 [^ \f\n\r\t\v]薇搁。
\t 匹配一個(gè)制表符斋扰。等價(jià)于 \x09 和 \cI。
\v 匹配一個(gè)垂直制表符啃洋。等價(jià)于 \x0b 和 \cK传货。
特殊字符
所謂特殊字符,就是一些有特殊含義的字符宏娄,如上面說的 abcd*b 中的 *问裕,簡單的說就是表示任何字符串的意思。如果要查找字符串中的 * 符號(hào)孵坚,則需要對(duì) * 進(jìn)行轉(zhuǎn)義粮宛,即在其前加一個(gè) \: rand\*ob 匹配 rand*ob。
許多元字符要求在試圖匹配它們時(shí)特別對(duì)待卖宠。若要匹配這些特殊字符巍杈,必須首先使字符"轉(zhuǎn)義",即扛伍,將反斜杠字符\ 放在它們前面筷畦。下表列出了正則表達(dá)式中的特殊字符:
特別字符 描述
$ 匹配輸入字符串的結(jié)尾位置。如果設(shè)置了 RegExp 對(duì)象的 Multiline 屬性蜒秤,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身亚斋,請(qǐng)使用 \$作媚。
( ) 標(biāo)記一個(gè)子表達(dá)式的開始和結(jié)束位置。子表達(dá)式可以獲取供以后使用帅刊。要匹配這些字符纸泡,請(qǐng)使用 \( 和 \)。
* 匹配前面的子表達(dá)式零次或多次赖瞒。要匹配 * 字符女揭,請(qǐng)使用 \*。
+ 匹配前面的子表達(dá)式一次或多次栏饮。要匹配 + 字符吧兔,請(qǐng)使用 \+。
. 匹配除換行符 \n 之外的任何單字符袍嬉。要匹配 . 境蔼,請(qǐng)使用 \. 灶平。
[ 標(biāo)記一個(gè)中括號(hào)表達(dá)式的開始。要匹配 [箍土,請(qǐng)使用 \[逢享。
? 匹配前面的子表達(dá)式零次或一次,或指明一個(gè)非貪婪限定符吴藻。要匹配 ? 字符瞒爬,請(qǐng)使用 \?。
\ 將下一個(gè)字符標(biāo)記為或特殊字符沟堡、或原義字符侧但、或向后引用、或八進(jìn)制轉(zhuǎn)義符弦叶。例如俊犯, 'n' 匹配字符 'n'。'\n' 匹配換行符伤哺。序列 '\\' 匹配 "\"燕侠,而 '\(' 則匹配 "("。
^ 匹配輸入字符串的開始位置立莉,除非在方括號(hào)表達(dá)式中使用绢彤,此時(shí)它表示不接受該字符集合。要匹配 ^ 字符本身蜓耻,請(qǐng)使用 \^茫舶。
{ 標(biāo)記限定符表達(dá)式的開始。要匹配 {刹淌,請(qǐng)使用 \{饶氏。
| 指明兩項(xiàng)之間的一個(gè)選擇。要匹配 |有勾,請(qǐng)使用 \|疹启。
限定符
限定符用來指定正則表達(dá)式的一個(gè)給定組件必須要出現(xiàn)多少次才能滿足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6種蔼卡。
正則表達(dá)式的限定符有:
字符 描述
* 匹配前面的子表達(dá)式零次或多次喊崖。例如,zo* 能匹配 "z" 以及 "zoo"雇逞。* 等價(jià)于{0,}荤懂。
+ 匹配前面的子表達(dá)式一次或多次。例如塘砸,'zo+' 能匹配 "zo" 以及 "zoo"节仿,但不能匹配 "z"。+ 等價(jià)于 {1,}掉蔬。
? 匹配前面的子表達(dá)式零次或一次粟耻。例如查近,"do(es)?" 可以匹配 "do" 、 "does" 中的 "does" 挤忙、 "doxy" 中的 "do" 霜威。? 等價(jià)于 {0,1}。
{n} n 是一個(gè)非負(fù)整數(shù)册烈。匹配確定的 n 次戈泼。例如,'o{2}' 不能匹配 "Bob" 中的 'o'赏僧,但是能匹配 "food" 中的兩個(gè) o大猛。
{n,} n 是一個(gè)非負(fù)整數(shù)。至少匹配n 次淀零。例如挽绩,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o驾中。'o{1,}' 等價(jià)于 'o+'唉堪。'o{0,}' 則等價(jià)于 'o*'。
{n,m} m 和 n 均為非負(fù)整數(shù)肩民,其中n <= m唠亚。最少匹配 n 次且最多匹配 m 次。例如持痰,"o{1,3}" 將匹配 "fooooood" 中的前三個(gè) o灶搜。'o{0,1}' 等價(jià)于 'o?'。請(qǐng)注意在逗號(hào)和兩個(gè)數(shù)之間不能有空格工窍。