成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

RegExp對象

anonymoussf / 1828人閱讀

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

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

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

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

點字符 (.)

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

位置字符

位置字符用來提示字符所處的位置,主要有兩個字符。

^ 表示字符串的開始位置

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

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

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

選擇符 (|)

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

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

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

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

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

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

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

n 匹配換行鍵

r 匹配回車鍵

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

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

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

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

0 匹配null字符(U+0000)

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

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

有兩個字符在字符類中有特殊含義

1.脫子符(^)

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

2.連字符(-)

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

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

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

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

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

加號表示某個模式出現(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)情況下都是最大可能匹配,即匹配直到下一個字符不滿足匹配規(guī)則為止。這被稱為貪婪模式。
var str= "aaa";
str.match(/a+/);    // ["aaa"]

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

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

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

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

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

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

i :忽略大小寫(ignorecase)

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

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

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

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

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

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

// 字符串結(jié)尾處有一個換行符。如果不加m修飾符,為false。加上以后,$可以匹配行尾
/world$/.test("hello world
") // false
/world$/m.test("hello world
") // true
組匹配
正則表達式的括號表示分組匹配,括號中的模式可以用來匹配分組的內(nèi)容。
// 第一個模式?jīng)]有括號,結(jié)果+只表示重復(fù)字母t。第二個模式有括號,結(jié)果+就表示匹配test
/test+/.test("testt")      // true
/(test)+/.test("testtest") // true
(?:x):非捕獲組(Non-capturing group),表示不返回該組匹配的內(nèi)容,即匹配的結(jié)果中不計入這個括號。
// 正常匹配
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不會被計入返回結(jié)果。
/d+(?=%)/.test("23%");    // true
/d+(?=%)/.test("2A%");    // false
x(?!y):先行否定斷言(Negative look-ahead),x只有不在y前面才匹配,y不會被計入返回結(jié)果。
/d+(?!%)/.test("2%");     // false
  • abc ?

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

    轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/97780.html

    相關(guān)文章

    • JS中的正則表達式

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

      Soarkey 評論0 收藏0
    • JS正則表達式精簡教程(JavaScript RegExp 對象

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

      ACb0y 評論0 收藏0
    • 【JavaScript】正則表達式

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

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

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

      Prasanta 評論0 收藏0
    • Javascript正則表達式入門

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

      joywek 評論0 收藏0
    • JavaScript標(biāo)準(zhǔn)庫系列——RegExp對象(三)

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

      邱勇 評論0 收藏0

    發(fā)表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <