国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

RegExp對(duì)象

anonymoussf / 1822人閱讀

摘要:修飾符修飾符表示模式的附加規(guī)則,放在正則模式的最尾部。全局匹配,正則對(duì)象將匹配全部符合條件的結(jié)果,主要用于搜索和替換忽略大小寫(xiě)和可以匹配行首和行尾了,即和會(huì)識(shí)別換行符正則模式不含修飾符,每次都是從字符串頭部開(kāi)始匹配。

匹配規(guī)則 字面量字符
大部分字符在正則表達(dá)式中,就是字面的含義。如果在正則表達(dá)式之中,某個(gè)字符只表示它字面的含義,那么它們就是“字面量字符”(literalcharacters)
/Wade/.test("Dwyane Wade")    // true

上面代碼中正則表達(dá)式的Wade,就是字面量字符,所以 /Wade/ 匹配 Dwyane Wade.

元字符
除了字面量字符以外,還有一部分字符有特殊含義,不代表字面的意思。它們叫做“元字符”(metacharacters)

點(diǎn)字符 (.)

匹配任意一個(gè)字符,除了換行和行結(jié)束符。
var regexp = /w.e/; 
regexp.test("wae")    // true
regexp.test("wade");  // false

位置字符

位置字符用來(lái)提示字符所處的位置,主要有兩個(gè)字符。

^ 表示字符串的開(kāi)始位置

$ 表示字符串的結(jié)束位置

// test必須出現(xiàn)在開(kāi)始位置
/^test/.test("test-wade");    // true
// test必須出現(xiàn)在結(jié)束位置
/test$/.test("wade-test");    // true

// 開(kāi)始位置到結(jié)束位置只有test
/^test$/.test("test");        // true
/^test$/.test("test test");   // false

選擇符 (|)

豎線(xiàn)符號(hào)(|)在正則表達(dá)式中表示“或關(guān)系”(OR)
// 匹配Test或Wade
/Test|Wade/.test("DwyaneWade")        // true

多個(gè)選擇符可以聯(lián)合使用

// 匹配Test、Dwyane、Wade之中的一個(gè)
/Test|Dwyane|Wade/.test("Dwyane3")    // true

選擇符會(huì)包括它前后的多個(gè)字符,比如/ab|cd/指的是匹配ab或cd,而不是指匹配b或者c。如果想修改這個(gè)行為,可以使用圓括號(hào)。

/a( |	)b/.test("a	b");    // true
轉(zhuǎn)義符
正則表達(dá)式中那些有特殊含義的元字符,如果要匹配它們本身,就需要在它們前面要加上反斜杠。
/1+1/.test("1+1");     // false
/1+1/.test("1+1");    // true

正則表達(dá)式中,需要反斜杠轉(zhuǎn)義的,一共有12個(gè)字符:^、.、[、$、(、)、|、*、+、?、{和。

特殊字符
正則表達(dá)式對(duì)一些不能打印的特殊字符,提供了表達(dá)方法。

n 匹配換行鍵

r 匹配回車(chē)鍵

t 匹配制表符 tab(U+0009)

v 匹配垂直制表符(U+000B)

f 匹配換頁(yè)符(U+000C)

[b] 匹配退格鍵(U+0008),不要與b混淆

0 匹配null字符(U+0000)

cX 表示Ctrl-[X],其中的X是A-Z之中任一個(gè)英文字母,用來(lái)匹配控制字符

字符類(lèi)
字符類(lèi)(class)表示有一系列字符可供選擇,只要匹配其中一個(gè)就可以了。所有可供選擇的字符都放在方括號(hào)內(nèi),比如[abc] 表示a、b、c之中任選一個(gè)匹配。
/[abc]/.test("Dwyane");    // true

有兩個(gè)字符在字符類(lèi)中有特殊含義

1.脫子符(^)

如果方括號(hào)內(nèi)的第一個(gè)字符是[^],則表示除了字符類(lèi)之中的字符,其他字符都可以匹配。比如1 表示a、b、c之外都可以匹配。
/[^abc]/.test("Test");    // true
如果方括號(hào)內(nèi)沒(méi)有其他字符,即只有[^],就表示匹配一切字符,其中包括換行符。上文提到的點(diǎn)字符(.)是不包括換行符的。
/wa.e/.test("wa
e");     // false
/wa[^]/.test("wa
e");    // true

2.連字符(-)

連字符(-)表示字符的連續(xù)范圍。比如[0123456789]可以寫(xiě)成[0-9],[A-Z]表示26個(gè)大寫(xiě)字母。
/a-z/.test("b");     // false
/[a-z].test("b");    // true
預(yù)定義模式
預(yù)定義模式指的是某些常見(jiàn)模式的簡(jiǎn)寫(xiě)方式。
 - d 匹配0-9之間的任一數(shù)字,相當(dāng)于[0-9]
 - D 匹配所有0-9以外的字符,相當(dāng)于[^0-9]
 - w 匹配任意的字母、數(shù)字和下劃線(xiàn),相當(dāng)于[A-Za-z0-9_]
 - W 除所有字母、數(shù)字和下劃線(xiàn)以外的字符,相當(dāng)于[^A-Za-z0-9_]
 - s 匹配空格(包括換行符、制表符、空格符等),相等于[ 	
vf]
 - S 匹配非空格的字符,相當(dāng)于[^ 	
vf]
 -  匹配詞的邊界
 - B 匹配非詞邊界,即在詞的內(nèi)部
/w/.test("wade03");    // true
重復(fù)類(lèi)

模式的精確匹配次數(shù),使用大括號(hào)({})。{n}表示恰好重復(fù)n次,{n,}表示至少重復(fù)n次,{n,m}表示重復(fù)不少于n次,不多于m次。

/te{2}st/.test("teest");          // true
/te{2,5}st/.test("teeeeeest");    // false
量詞符
量詞符用來(lái)設(shè)定某個(gè)模式出現(xiàn)的次數(shù)。

? 問(wèn)號(hào)表示某個(gè)模式出現(xiàn)0次或1次,等同于{0, 1}

星號(hào)表示某個(gè)模式出現(xiàn)0次或多次,等同于{0,}

加號(hào)表示某個(gè)模式出現(xiàn)1次或多次,等同于{1,}

// t 出現(xiàn)0次或1次
/t?est/.test("test");    // true
/t?est/.test("est");     // true

// t 出現(xiàn)0次或多次
/t*est/.test("tttest");  // true
/t*est/.test("est");     // true

// t 出現(xiàn)1次或多次
/t+est/.test("ttest");   // true
/t+est/.test("est");     // false
貪婪模式
上文中量詞符,默認(rèn)情況下都是最大可能匹配,即匹配直到下一個(gè)字符不滿(mǎn)足匹配規(guī)則為止。這被稱(chēng)為貪婪模式。
var str= "aaa";
str.match(/a+/);    // ["aaa"]

如果想將貪婪模式改為非貪婪模式,可以在量詞符后面加一個(gè)問(wèn)號(hào)(?)。

+?:表示某個(gè)模式出現(xiàn)1次或多次,匹配時(shí)采用非貪婪模式。

*?:表示某個(gè)模式出現(xiàn)0次或多次,匹配時(shí)采用非貪婪模式。

??:表格某個(gè)模式出現(xiàn)0次或1次,匹配時(shí)采用非貪婪模式。

var str = "aaa";
str.match(/a+/);    // ["a"]
修飾符
修飾符(modifier)表示模式的附加規(guī)則,放在正則模式的最尾部。

g :全局匹配(global),正則對(duì)象將匹配全部符合條件的結(jié)果,主要用于搜索和替換

i :忽略大小寫(xiě)(ignorecase)

m :^和$可以匹配行首和行尾了,即^和$會(huì)識(shí)別換行符(n)

// 正則模式不含g修飾符,每次都是從字符串頭部開(kāi)始匹配。
var regex = /b/;
var str = "abba";

regex.test(str); // true
regex.test(str); // true

// 正則模式含有g(shù)修飾符,每次都是從上一次匹配成功處,開(kāi)始向后匹配。由于只有一個(gè)b,第二次就失敗了
var regex = /b/g;
var str = "aba";

regex.test(str); // true
regex.test(str); // false

// 加了i修飾符以后,不考慮大小寫(xiě),所以模式abc匹配字符串ABC
/abc/.test("ABC") // false
/abc/i.test("ABC") // true

// 字符串結(jié)尾處有一個(gè)換行符。如果不加m修飾符,為false。加上以后,$可以匹配行尾
/world$/.test("hello world
") // false
/world$/m.test("hello world
") // true
組匹配
正則表達(dá)式的括號(hào)表示分組匹配,括號(hào)中的模式可以用來(lái)匹配分組的內(nèi)容。
// 第一個(gè)模式?jīng)]有括號(hào),結(jié)果+只表示重復(fù)字母t。第二個(gè)模式有括號(hào),結(jié)果+就表示匹配test
/test+/.test("testt")      // true
/(test)+/.test("testtest") // true
(?:x):非捕獲組(Non-capturing group),表示不返回該組匹配的內(nèi)容,即匹配的結(jié)果中不計(jì)入這個(gè)括號(hào)。
// 正常匹配
var url = /(http|ftp)://([^/
]+)(/[^
]*)?/;

url.exec("http://google.com/");
// ["http://google.com/", "http", "google.com", "/"]

// 非捕獲組匹配
var url = /(?:http|ftp)://([^/
]+)(/[^
]*)?/;

url.exec("http://google.com/");
// ["http://google.com/", "google.com", "/"]
x(?=y):先行斷言(Positive look-ahead),x只有在y前面才匹配,y不會(huì)被計(jì)入返回結(jié)果。
/d+(?=%)/.test("23%");    // true
/d+(?=%)/.test("2A%");    // false
x(?!y):先行否定斷言(Negative look-ahead),x只有不在y前面才匹配,y不會(huì)被計(jì)入返回結(jié)果。
/d+(?!%)/.test("2%");     // false
  • abc ?

  • 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/97780.html

    相關(guān)文章

    • JS中的正則表達(dá)式

      摘要:構(gòu)造函數(shù)可以有兩個(gè)字符串參數(shù),第一個(gè)參數(shù)包含正則表達(dá)式的主體部分。只讀的布爾值,說(shuō)明這個(gè)正則表達(dá)式是否帶有修飾符。中正則的擴(kuò)展構(gòu)造函數(shù)在中,只能接受字符串作為參數(shù),允許其直接接受正則表達(dá)式作為參數(shù)。 上文傳送門(mén):初探正則表達(dá)式 正則表達(dá)式是一個(gè)描述字符模式的對(duì)象,JavaScript 的 RegExp 類(lèi)表示正則表達(dá)式,String 和 RegExp 都定義了方法,后者使用正則表達(dá)式進(jìn)...

      Soarkey 評(píng)論0 收藏0
    • JS正則表達(dá)式精簡(jiǎn)教程(JavaScript RegExp 對(duì)象

      摘要:返回值是被找到的值。支持正則表達(dá)式的對(duì)象的方法方法檢索與正則表達(dá)式相匹配的子字符串。該數(shù)組是通過(guò)在指定的邊界處將字符串分割成子串創(chuàng)建的。注意報(bào)錯(cuò)正確示例附表修飾符修飾符描述執(zhí)行對(duì)大小寫(xiě)不敏感的匹配。查找以十六進(jìn)制數(shù)規(guī)定的字符。 什么是 RegExp? RegExp 是正則表達(dá)式的縮寫(xiě)。 當(dāng)您檢索某個(gè)文本時(shí),可以使用一種模式來(lái)描述要檢索的內(nèi)容。RegExp 就是這種模式。 簡(jiǎn)單的模式可以...

      ACb0y 評(píng)論0 收藏0
    • 【JavaScript】正則表達(dá)式

      摘要:對(duì)象對(duì)象對(duì)象表示正則表達(dá)式,它是對(duì)字符串執(zhí)行模式匹配的強(qiáng)大工具。查找以十六進(jìn)制數(shù)規(guī)定的字符。支持正則表達(dá)式的對(duì)象的方法方法描述檢索與正則表達(dá)式相匹配的值。替換與正則表達(dá)式匹配的子串。 RegExp對(duì)象 RegExp 對(duì)象 RegExp 對(duì)象表示正則表達(dá)式,它是對(duì)字符串執(zhí)行模式匹配的強(qiáng)大工具。 直接量語(yǔ)法 /pattern/attributes 創(chuàng)建 RegExp 對(duì)象的語(yǔ)法 new R...

      894974231 評(píng)論0 收藏0
    • PocketLibs(2)—— 請(qǐng)求相關(guān) path-to-regexp

      摘要:直接調(diào)用構(gòu)造函數(shù)使用,一個(gè)可能含某種匹配模式的路徑字符串作為它的必選參數(shù),它返回一個(gè)正則對(duì)象。有兩個(gè)方法返回一個(gè)正則對(duì)象,效果與調(diào)用構(gòu)造函數(shù)一樣返回一個(gè)函數(shù),該函數(shù)與下面的返回的函數(shù)功能一樣方法,同樣接收一個(gè)路徑字符串。 code in here使用path-to-regexp,我們可以在路徑字符串中使用正則。如/:foo*/:bar?、/icon-:foo(d+).png等。像exp...

      Prasanta 評(píng)論0 收藏0
    • Javascript正則表達(dá)式入門(mén)

      摘要:返回值一個(gè)新的對(duì)象,具有指定的模式和標(biāo)志。參數(shù)作用正則表達(dá)式規(guī)定匹配的類(lèi)型。如果未找到匹配,則返回值為。返回值請(qǐng)注意,無(wú)論是否是全局模式,都會(huì)把完整的細(xì)節(jié)添加到它返回的數(shù)組中。字符串或正則表達(dá)式,從該參數(shù)指定的地方分割。 前言 PS:2018/03/27 優(yōu)化文章格式,新增部分測(cè)試代碼說(shuō)起正則其實(shí)大家都會(huì)經(jīng)常接觸到,前端小到校驗(yàn),大到插件隨處可見(jiàn),簡(jiǎn)單的方法也能實(shí)現(xiàn)需求,不過(guò)缺乏靈活性...

      joywek 評(píng)論0 收藏0
    • JavaScript標(biāo)準(zhǔn)庫(kù)系列——RegExp對(duì)象(三)

      摘要:目錄導(dǎo)語(yǔ)理解正則表達(dá)式模式的規(guī)則字符串和正則實(shí)例的屬性和方法檢索實(shí)例小結(jié)導(dǎo)語(yǔ)正則表達(dá)式是處理字符串的一門(mén)藝術(shù)手法,應(yīng)用場(chǎng)景經(jīng)常出現(xiàn)在表單驗(yàn)證部分高級(jí)程序設(shè)計(jì)一書(shū)開(kāi)篇提到,這門(mén)語(yǔ)言最原始的應(yīng)用就是處理輸入驗(yàn)證操作,所以正則表達(dá)式從誕生那一刻就 目錄 導(dǎo)語(yǔ) 1.理解正則表達(dá)式 2.模式的規(guī)則 3.字符串和正則實(shí)例的屬性和方法 4.檢索實(shí)例 5. 小結(jié) 導(dǎo)語(yǔ) 正則表達(dá)式是處理字符串的一門(mén)藝...

      邱勇 評(píng)論0 收藏0

    發(fā)表評(píng)論

    0條評(píng)論

    最新活動(dòng)
    閱讀需要支付1元查看
    <