正則表達(dá)式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來(lái)檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等行嗤。
使用正則表達(dá)式,可以:
測(cè)試字符串內(nèi)的模式垛耳。例如栅屏,可以測(cè)試輸入字符串,以查看字符串內(nèi)是否出現(xiàn)電話(huà)號(hào)碼模式或信用卡號(hào)碼模式艾扮。這稱(chēng)為數(shù)據(jù)驗(yàn)證既琴。
替換文本∨葑欤可以使用正則表達(dá)式來(lái)識(shí)別文檔中的特定文本甫恩,完全刪除該文本或者用其他文本替換它。
基于模式匹配從字符串中提取子字符串酌予』腔可以查找文檔內(nèi)或輸入域內(nèi)特定的文本。
\n 匹配一個(gè)換行符抛虫。等價(jià)于 \x0a 和 \cJ松靡。
\r 匹配一個(gè)回車(chē)符。等價(jià)于 \x0d 和 \cM建椰。
$ 匹配輸入字符串的結(jié)尾位置雕欺。
( ) 標(biāo)記一個(gè)子表達(dá)式的開(kāi)始和結(jié)束位置。
*匹配前面的子表達(dá)式零次或多次棉姐。要匹配 * 字符屠列,請(qǐng)使用 *。
+匹配前面的子表達(dá)式一次或多次伞矩。要匹配 + 字符笛洛,請(qǐng)使用 +。
?匹配前面的子表達(dá)式零次或一次
runoo+b乃坤,可以匹配 runoob苛让、runooob、runoooooob 等湿诊,+號(hào)代表前面的字符必須至少出現(xiàn)一次(1次或多次)狱杰。
runoob,可以匹配 runob厅须、runoob浦旱、runoooooob 等,號(hào)代表字符可以不出現(xiàn)九杂,也可以出現(xiàn)一次或者多次(0次颁湖、或1次、或多次)例隆。
colou?r可以匹配 color 或者 colour 問(wèn)號(hào)代表前面的字符最多只可以出現(xiàn)一次(0次甥捺、或1次)。
\將下一個(gè)字符標(biāo)記為或特殊字符镀层、或原義字符镰禾、或向后引用、或八進(jìn)制轉(zhuǎn)義符
^匹配輸入字符串的開(kāi)始位置唱逢,除非在方括號(hào)表達(dá)式中使用吴侦,此時(shí)它表示不接受該字符集合。
| 指明兩項(xiàng)之間的一個(gè)選擇
{n}n 是一個(gè)非負(fù)整數(shù)坞古。匹配確定的 n 次备韧。
{n,m}m 和 n 均為非負(fù)整數(shù),其中n <= m痪枫。最少匹配 n 次且最多匹配 m 次
. 匹配除換行符 \n 之外的任何單字符
正則 i表示忽略大小寫(xiě) m表示多行顯示 g表示全局搜索 / /img
舉例:
varstr="http://www.runoob.com:80/html/html-tutorial.html";
varpatt1= /(\w+)://([/:]+)(:\d*)?([#]*)/;
第一個(gè)括號(hào)子表達(dá)式捕獲 Web 地址的協(xié)議部分织堂。該子表達(dá)式匹配在冒號(hào)和兩個(gè)正斜杠前面的任何單詞。第二個(gè)括號(hào)子表達(dá)式捕獲地址的域地址部分奶陈。子表達(dá)式匹配 / 和 : 之外的一個(gè)或多個(gè)字符易阳。第三個(gè)括號(hào)子表達(dá)式捕獲端口號(hào)(如果指定了的話(huà))。該子表達(dá)式匹配冒號(hào)后面的零個(gè)或多個(gè)數(shù)字吃粒。只能重復(fù)一次該子表達(dá)式潦俺。最后,第四個(gè)括號(hào)子表達(dá)式捕獲 Web 地址指定的路徑和 / 或頁(yè)信息徐勃。該子表達(dá)式能匹配不包括 # 或空格字符的任何字符序列事示。
第一個(gè)括號(hào)子表達(dá)式包含"http"
第二個(gè)括號(hào)子表達(dá)式包含"www.runoob.com"
第三個(gè)括號(hào)子表達(dá)式包含":80"
第四個(gè)括號(hào)子表達(dá)式包含"/html/html-tutorial.html"
//常用 .*? .匹配一個(gè)字符 *一個(gè)或多個(gè) ?零個(gè)或一個(gè) i表示忽略大小寫(xiě) m表示多行 g表示全局匹配
如:var reg=/src="(.*?.png)"/img;
[a-z]//匹配所有的小寫(xiě)字母
[A-Z]//匹配所有的大寫(xiě)字母
[a-zA-Z]//匹配所有的字母
[0-9]//匹配所有的數(shù)字
[0-9.-]//匹配所有的數(shù)字,句號(hào)和減號(hào)
[\f\r\t\n]//匹配所有的白字符
^a{2,4}$aa,aaa或aaaa
一個(gè)數(shù)字{x}的意思是前面的字符或字符簇只出現(xiàn)x次疏旨;一個(gè)數(shù)字加逗號(hào){x,}的意思是前面的內(nèi)容出現(xiàn)x或更多的次數(shù)很魂;兩個(gè)數(shù)字用逗號(hào)分隔的數(shù)字{x,y}表示前面的內(nèi)容至少出現(xiàn)x次,但不超過(guò)y次
^[1-9][0-9]{0,}// 所有的正整數(shù)
^-{0,1}[0-9]{1,}// 所有的整數(shù)
^[-]?[0-9]+.?[0-9]+// 所有的浮點(diǎn)數(shù)
中括號(hào)表達(dá)式的典型用途是指定任何大寫(xiě)或小寫(xiě)字母或任何數(shù)字的匹配檐涝。 /[A-Za-z0-9]/
[^1-5] 匹配 1遏匆、2、3谁榜、4 或 5 之外的任何數(shù)字和字符
下面列出一些正則表達(dá)式示例:
/\b([a-z]+) \1\b/gi 一個(gè)單詞連續(xù)出現(xiàn)的位置幅聘。
/(\w+)://([/:]+)(:\d*)?([# ]*)/ 將一個(gè)URL解析為協(xié)議、域窃植、端口及相對(duì)路徑帝蒿。
/<\s(\S+)(\s[^>])?>[\s\S]<\s/\1\s*>/ 匹配 HTML 標(biāo)記。
正則m表示到達(dá)一行文本末尾時(shí)還會(huì)繼續(xù)查找下一行中是否存在與模式匹配的項(xiàng)巷怜。
補(bǔ)充隨機(jī)數(shù)
Math.ceil()向上取整
Math.floor()向下取整
Math.round() 四舍五入
Math.random()返回介于 0 ~ 1 之間的一個(gè)隨機(jī)數(shù)葛超。(0,1]
如果你希望生成1到任意值的隨機(jī)數(shù):
Math.floor(Math.random()max)+1;
如果你希望生成0到任意值的隨機(jī)數(shù):
Math.floor(Math.random()(max+1));
值= Math.floor(Math.random()*可能值的總數(shù)+第一個(gè)可能的值)