RegExp正則表達(dá)式

正則表達(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,}http:// 所有的正整數(shù) ^[1-9][0-9]*// 所有的正整數(shù)

^-{0,1}[0-9]{1,}http:// 所有的整數(shù) ^\-?[0-9]+// 所有的整數(shù)

^[-]?[0-9]+.?[0-9]+http:// 所有的浮點(diǎn)數(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è)可能的值)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末暴氏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子绣张,更是在濱河造成了極大的恐慌答渔,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件侥涵,死亡現(xiàn)場(chǎng)離奇詭異沼撕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)芜飘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)务豺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人嗦明,你說(shuō)我怎么就攤上這事笼沥。” “怎么了招狸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵敬拓,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我裙戏,道長(zhǎng)乘凸,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任累榜,我火速辦了婚禮营勤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘壹罚。我一直安慰自己葛作,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布猖凛。 她就那樣靜靜地躺著赂蠢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辨泳。 梳的紋絲不亂的頭發(fā)上虱岂,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音菠红,去河邊找鬼第岖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛试溯,可吹牛的內(nèi)容都是我干的蔑滓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼键袱!你這毒婦竟也來(lái)了燎窘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤杠纵,失蹤者是張志新(化名)和其女友劉穎荠耽,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體比藻,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年倘屹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了银亲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纽匙,死狀恐怖务蝠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烛缔,我是刑警寧澤馏段,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站践瓷,受9級(jí)特大地震影響院喜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晕翠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一喷舀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧淋肾,春花似錦硫麻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至碌尔,卻和暖如春浇辜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背七扰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工奢赂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颈走。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓膳灶,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子轧钓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • '^'必須才開(kāi)頭開(kāi)始匹配'$'必須在末尾結(jié)束匹配'|' 表示‘或’/ab|cd/匹配ab或者cd'.'表示點(diǎn)字符(...
    zjh111閱讀 415評(píng)論 0 0
  • 概述 正則表達(dá)式(regular expression)是一種表達(dá)文本模式(即字符串結(jié)構(gòu))的方法序厉,有點(diǎn)像字符串的模...
    許先生__閱讀 272評(píng)論 0 1
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,383評(píng)論 0 5
  • 一、概述 正則表達(dá)式(regular expression)是一種表達(dá)字符串結(jié)構(gòu)的方法毕箍,有點(diǎn)像字符串的模版弛房,常常用...
    周花花啊閱讀 574評(píng)論 0 1
  • 一、Java 簡(jiǎn)介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚(yú)_t_閱讀 4,195評(píng)論 1 44