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

資訊專欄INFORMATION COLUMN

正則的貪婪,前瞻及屬性詳解

pepperwang / 2221人閱讀

摘要:正則的三種方法編譯正則表達(dá)式。返回找到的值,并確定其位置。規(guī)定匹配的類型。用于全局匹配,用于區(qū)分大小寫,用于全局區(qū)分大小寫的匹配。非貪婪匹配就是匹配到結(jié)果就好,就少的匹配字符。對(duì)象是否具有標(biāo)志。正則表達(dá)式的源文本。

對(duì)正則的深入學(xué)習(xí)

學(xué)習(xí)正則我們不能光看看幾個(gè)修飾符就可以了,因?yàn)檎齽t還有許多深入的知識(shí),下面我就來(lái)為大家扒一扒。。。

正則的三種方法

compile 編譯正則表達(dá)式。

exec 檢索字符串中指定的值。返回找到的值,并確定其位置。

test 檢索字符串中指定的值。返回 true 或 false。

.compile()的用法

compile() 方法用于在腳本執(zhí)行過(guò)程中編譯正則表達(dá)式,也可用于改變和重新編譯正則表達(dá)式。

語(yǔ)法
RegExpObject.compile(regexp,modifier)
參數(shù)詳解
regexp    正則表達(dá)式。
modifier    規(guī)定匹配的類型。"g" 用于全局匹配,"i" 用于區(qū)分大小寫,"gi" 用于全局區(qū)分大小寫的匹配。
實(shí)例

在字符串中全局搜索 "man",并用 "person" 替換。然后通過(guò) compile() 方法,改變正則表達(dá)式,用 "person" 替換 "man" 或 "woman",

var str="Every man in the world! Every woman on earth!";
patt=/man/g;
str2=str.replace(patt,"person");
document.write(str2+"
"); patt=/(wo)?man/g; patt.compile(patt); str2=str.replace(patt,"person"); document.write(str2);

輸出

Every person in the world! Every woperson on earth!
Every person in the world! Every person on earth!
.exec()的用法

exec() 方法用于檢索字符串中的正則表達(dá)式的匹配。

語(yǔ)法
RegExpObject.exec(string)

參數(shù)
string 要檢索的值

實(shí)例

我們需要找到my,并檢索

var str = "hi my name is motor how are you";
var reg = /my/;
reg.exec(str)

輸出my

.test()的用法

test() 方法用于檢測(cè)一個(gè)字符串是否匹配某個(gè)模式.

語(yǔ)法
RegExpObject.test(string)

參數(shù)
string 要檢索的值

實(shí)例

我們需要找到my,并檢索

var str = "hi my name is motor how are you";
var reg = /my/;
reg.test(str)

輸出true

貪婪 什么是正則表達(dá)式的貪婪與非貪婪匹配

  如:String str="abcaxc";
    Patter p="ab*c";

貪婪匹配:正則表達(dá)式一般趨向于最大長(zhǎng)度匹配,也就是所謂的貪婪匹配。如上面使用模式p匹配字符串str,結(jié)果就是匹配到:abcaxc(ab*c)。

非貪婪匹配:就是匹配到結(jié)果就好,就少的匹配字符。如上面使用模式p匹配字符串str,結(jié)果就是匹配到:abc(ab*c)。

編程中如何區(qū)分兩種模式

默認(rèn)是貪婪模式;在量詞后面直接加上一個(gè)問(wèn)號(hào)?就是非貪婪模式。

量詞:

{m,n}:m到n個(gè) 
*:任意多個(gè)
+:一個(gè)到多個(gè)
?:0或一個(gè)
前瞻 正向前瞻
//判斷一個(gè)單詞字符之后是否是數(shù)字(正向前瞻),是的話,則符合匹配,進(jìn)行替換
var str = "a2*3";
var reg = /w(?=d)/g;
str.replace(reg,"X");
>>result: "X2*3"
反向前瞻
//判斷一個(gè)單詞字符之后是否是非數(shù)字(負(fù)向前瞻),是的話,則符合匹配,進(jìn)行替換
var str = "a2*3";
var reg = /w(?!d)/g;
str.replace(reg,"X");
>>result: "aX*X"
屬性

ignoreCase RegExp 對(duì)象是否具有標(biāo)志 i。

global RegExp 對(duì)象是否具有標(biāo)志 g。

multiline RegExp 對(duì)象是否具有標(biāo)志 m。

source 正則表達(dá)式的源文本。

lastIndex 一個(gè)整數(shù),標(biāo)示開(kāi)始下一次匹配的字符位置。

source
var reg = /name/;
reg.source

輸出name

lastIndex
var str = "hi my name is motor how are you";
    var reg = /m/g;
    console.log(reg.exec(str))
    console.log(reg.lastIndex)
    console.log(reg.exec(str))
    console.log(reg.lastIndex)
    console.log(reg.exec(str))
    console.log(reg.lastIndex)
    console.log(reg.exec(str))
    console.log(reg.lastIndex)
    console.log(reg.exec(str))
    console.log(reg.lastIndex)
    console.log(reg.exec(str))
    console.log(reg.lastIndex)

輸出

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

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

相關(guān)文章

  • JavaScript正則表達(dá)式總結(jié)

    摘要:正則表達(dá)式一直是里比較難以掌握的點(diǎn)。在中創(chuàng)建正則的兩種方式使用字面量這就是正則表達(dá)式的字面量語(yǔ)法,表示正則表達(dá)式的模式,為正則表達(dá)式的標(biāo)志。字面量形式的正則表達(dá)式一般使用較多,也推薦大家盡可能使用這種形式,簡(jiǎn)潔易讀,符合正常的使用習(xí)慣。 正則表達(dá)式一直是js里比較難以掌握的點(diǎn)。 看不懂,學(xué)不會(huì),記不住。 每次需要用到正則的時(shí)候,都需要再去查找資料。 今天花時(shí)間把正則的知識(shí)點(diǎn)總結(jié)下,希望...

    big_cat 評(píng)論0 收藏0
  • js正則表達(dá)式學(xué)習(xí)筆記

    摘要:說(shuō)來(lái)慚愧,做前端快三年對(duì)于正則表達(dá)式的應(yīng)用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語(yǔ)法和規(guī)則,這次項(xiàng)目中多次用到了需要匹配替換的動(dòng)作,終于下定決心去研究一下了。 說(shuō)來(lái)慚愧,做前端快三年對(duì)于正則表達(dá)式的應(yīng)用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語(yǔ)法和規(guī)則,這次項(xiàng)目中多次用到了需要匹配替換的動(dòng)作,終于下定決心去研究一下了。 實(shí)例化正則對(duì)...

    Towers 評(píng)論0 收藏0
  • 熟練掌握這十種字符,你正則表達(dá)式就沒(méi)問(wèn)題

    摘要:元字符代表一類字符元類字符有或者的意思。里還可以有數(shù)字大小寫字母。比如輸出量詞量詞是用來(lái)修飾字符的。 元字符 [ ] [ ] 代表一類字符(元類字符), [ ]有或者的意思,。比如[abc],意思就是a或b或c。 [ ]里還可以有數(shù)字.大小寫字母。比如[0-9a-zA-Z] var str=diauhvvdai; var reg=str.replace(/[ha...

    liangzai_cool 評(píng)論0 收藏0
  • JS核心知識(shí)點(diǎn)梳理——正則篇(上)

    摘要:正則引言正則是一個(gè)前端必須掌握的知識(shí)。這里上篇先介紹正則的規(guī)則,下篇結(jié)合一些具體題目,帶大家重新學(xué)習(xí)鞏固一下正則,爭(zhēng)取面試給自己加分。 正則 showImg(https://segmentfault.com/img/bVbo4hv?w=1800&h=1000); 引言 正則是一個(gè)前端必須掌握的知識(shí)。但是由于用的少,忘了記,記了忘,導(dǎo)致面試經(jīng)常坐蠟。這里上篇先介紹正則的規(guī)則,下篇結(jié)合一些...

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

    摘要:正則表達(dá)式邊界及前瞻邊界整個(gè)字符串開(kāi)頭結(jié)尾單詞的邊界前瞻正向前瞻反向前瞻正則的對(duì)象屬性屬性描述對(duì)象是否具有標(biāo)志。正則表達(dá)式的源文本。支持正則表達(dá)式的對(duì)象的方法方法描述檢索與正則表達(dá)式相匹配的值。替換與正則表達(dá)式匹配的子串。 ——————【 正則表達(dá)式 】—————— 復(fù)習(xí)字符串操作 indexOf 查找字符 返回位置 charAt 查找位置 返回字符 substring 獲取字符竄 ...

    fuchenxuan 評(píng)論0 收藏0

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

0條評(píng)論

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