亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

javascript正則表達(dá)式定義(語(yǔ)法)總結(jié)

 更新時(shí)間:2016年01月08日 09:49:24   作者:leo列  
這篇文章主要介紹了javascript正則表達(dá)式定義,對(duì)于JavaScript正則表達(dá)式的語(yǔ)法進(jìn)行了總結(jié)分析,需要的朋友可以參考下

本文講述了javascript正則表達(dá)式定義(語(yǔ)法)。分享給大家供大家參考,具體如下:

正則表達(dá)式的2種定義方法:一種是直接調(diào)用RegExp(),第二種是直接用字面量來(lái)定義,即var re = /正則規(guī)則/;

2種定義方法本質(zhì)都是調(diào)用RegExp()方法

在調(diào)用同一段正則代碼的時(shí)候,ECMAScript3和ECMAScript5中表現(xiàn)完全不一樣

function reg(){
 var re = /\sjavascript/;
 return re;
}

分別在ECMAScript3和ECMAScript5中調(diào)用reg()方法多次

在ECMAScript3中,調(diào)用的是同一個(gè)RegExp對(duì)象,在ECMAScript5中,調(diào)用的是不同的RegExp對(duì)象 因?yàn)樵贓XCMAScript5中每執(zhí)行一次,就生成一個(gè)新的RegExp對(duì)象

所以在ECMAScript3中會(huì)造成程序的隱患,因?yàn)橹灰谝粋€(gè)地方對(duì)這個(gè)對(duì)象進(jìn)行修改的話,所有調(diào)用到這個(gè)對(duì)象的地方都會(huì)變化。

1.直接量字符

在正則中一般都會(huì)直接匹配字符,如

/javascript/
會(huì)直接匹配字符javascript

還支持非字母的字符匹配,如:

\o    NUL字符(\u0000)

\t    制表符(\u0009)

\n    換行符(\u000A)

\v    垂直制表符(\u000B)

\f    換頁(yè)符(\u000C)

\r    回車(chē)符(\u000D)

\xnn   由十六進(jìn)制數(shù)nn指定的拉丁字符,例如,\x0A等價(jià)于\n

\uxxxx 由十六進(jìn)制數(shù)xxxx指定的Unicode字符,例如\u0009等價(jià)于\t

\cX   控制字符^X,例如,\cJ等價(jià)于換行符\n

在正則表達(dá)式中,還有一些有特殊含義的標(biāo)點(diǎn)符號(hào),他們需要'\'來(lái)轉(zhuǎn)義

^$.*+?=!:|\/()[]{}

2.字符類(lèi)

[...]     方括號(hào)內(nèi)的任意字符

[^...]    不在方括號(hào)內(nèi)的任意字符

.        任意字符

\w      任何ASCII字符組成的單詞,等價(jià)于[a-zA-Z0-9]

\W       任何不適ASCII字符組成的單詞,等價(jià)于[^a-zA-Z0-9]

\s      任何Unicode空白符

\S      任何非Unicode空白符的字符,注意\w和\S不一樣

\d      任何ASCII數(shù)值,等價(jià)于[0-9]

\D      除了ASCII數(shù)字之外的任何字符,等價(jià)于[^0-9]

[\b]     退格直接量(特例)

3.重復(fù)(次數(shù))

?    0或1次

+    1次或多次

*    任意次

{n}        n次

{m,n}     最少m次,最多n次

{n,}       n次或n次以上

正則默認(rèn)是貪婪匹配的

如[a+b+]      如果要匹配aaabb,它不會(huì)匹配ab和aab等,只會(huì)匹配aaabb

[a+?b+?]       這個(gè)會(huì)匹配aaab   為什么會(huì)產(chǎn)生這個(gè)區(qū)別呢?

答:+?是讓正則非貪婪匹配,那么b這里只會(huì)匹配一個(gè)b,那為什么a會(huì)匹配3個(gè)呢?這是因?yàn)檎齽t表達(dá)式的模式匹配總是會(huì)尋找字符串中第一個(gè)可能匹配的位置。

4.選項(xiàng)|分組|引用

|  用于分隔可供選擇的字符,如[ab|cd],他既可以匹配ab也可以匹配cd,注意:選擇項(xiàng)的嘗試匹配次序是左→右,因此[a|ab],當(dāng)a匹配通過(guò)了之后,就不匹配ab了,就算ab是更好的匹配

()  1.單獨(dú)的項(xiàng)當(dāng)成子表達(dá)式    /java(script)?/     可以匹配javascript和java   即圓括號(hào)部分形成子的表達(dá)式,可以對(duì)子表達(dá)式執(zhí)行| * ?等操作

    2.完整的模式中定義子模式   后面的可以引用前面圓括號(hào)起來(lái)的表達(dá)式   /(['"])[a-z]\1/     \1引用的是第一個(gè)圓括號(hào)里的表達(dá)式,因此引用了['"]

    3.后部引用前面的子表達(dá)式  注意: /['"][a-z]['"]/這個(gè)正則的意思是     單引號(hào)或雙引號(hào)加上一個(gè)小寫(xiě)字母加上一個(gè)單引號(hào)或者雙引號(hào),前后的單雙引號(hào)不是匹配的如果你要匹配可以這么寫(xiě)[(['"])[a-z]\1]

\加數(shù)字     可以引用前面圓括號(hào)中的表達(dá)式   

5.制定匹配位置(錨點(diǎn))

^    匹配字符串的開(kāi)頭,在多行檢索中,匹配一行的開(kāi)頭

$    匹配字符串的結(jié)尾,在多行檢索中,匹配一行的結(jié)尾

\b    匹配一個(gè)單詞的邊界,簡(jiǎn)言之,就是位于字符\w和\W之間的位置,或位于字符\w和字符串的開(kāi)頭或者結(jié)尾之間的位置

\B    匹配非單詞邊界的位置

(?=p)   零寬正向先行斷言,要求接下來(lái)的字符都與p匹配,但不能包括匹配p的那些字符

(?!p)  零寬負(fù)向先行斷言,要求接下來(lái)的字符不與p匹配

6.修飾符

寫(xiě)在正則表達(dá)式字面量//右側(cè)的

i        執(zhí)行不區(qū)分大小寫(xiě)的匹配

g        執(zhí)行一個(gè)全局匹配,簡(jiǎn)言之,即找到所有的匹配,而不是在找到第一個(gè)之后就停止

m       多行匹配模式,^匹配一行的開(kāi)頭和字符串的開(kāi)頭,$匹配行的結(jié)束和字符串的結(jié)束    /java$/m   可以匹配  java\nfunc

注意:當(dāng)正則表達(dá)式是全局的時(shí)候,每次exec() 和 test()的時(shí)候都會(huì)把當(dāng)前設(shè)置的lastIndex設(shè)為當(dāng)前的位置,再次執(zhí)行的時(shí)候就會(huì)從lastIndex的位置開(kāi)始執(zhí)行,因此最好每次執(zhí)行的時(shí)候lastIndex設(shè)置為0

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 20個(gè)JS簡(jiǎn)寫(xiě)技巧提升工作效率

    20個(gè)JS簡(jiǎn)寫(xiě)技巧提升工作效率

    這篇文章主要介紹了20個(gè)JS簡(jiǎn)寫(xiě)技巧提升工作效率,本文特點(diǎn)以言簡(jiǎn)意賅為主,圍繞JS簡(jiǎn)寫(xiě)技巧的話題展開(kāi)全文,具有一定的查看價(jià)值 ,需要的小伙伴可以參考一下
    2021-12-12
  • js中json對(duì)象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法

    js中json對(duì)象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法

    這篇文章主要介紹了js中json對(duì)象和字符串的理解及相互轉(zhuǎn)化操作實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了json對(duì)象與字符串的功能以及相互轉(zhuǎn)換操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • JS動(dòng)態(tài)給對(duì)象添加事件的簡(jiǎn)單方法

    JS動(dòng)態(tài)給對(duì)象添加事件的簡(jiǎn)單方法

    下面小編就為大家?guī)?lái)一篇JS動(dòng)態(tài)給對(duì)象添加事件的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • 小程序?qū)崿F(xiàn)計(jì)算器功能

    小程序?qū)崿F(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 網(wǎng)頁(yè)運(yùn)行時(shí)提示對(duì)象不支持abigimage屬性或方法

    網(wǎng)頁(yè)運(yùn)行時(shí)提示對(duì)象不支持abigimage屬性或方法

    網(wǎng)頁(yè)中用了一個(gè)js插件,js文件引用的沒(méi)有錯(cuò)但是運(yùn)行時(shí)ie的調(diào)試工具報(bào)了一個(gè)錯(cuò),提示對(duì)象不支持abigimage屬性或方法
    2014-08-08
  • js中的深淺拷貝問(wèn)題簡(jiǎn)析

    js中的深淺拷貝問(wèn)題簡(jiǎn)析

    這篇文章主要給大家介紹了關(guān)于js中的深淺拷貝問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 微信小程序中的店鋪評(píng)分組件及vue中用svg實(shí)現(xiàn)的評(píng)分顯示組件

    微信小程序中的店鋪評(píng)分組件及vue中用svg實(shí)現(xiàn)的評(píng)分顯示組件

    這篇文章主要介紹了微信小程序之店鋪評(píng)分組件及vue中用svg實(shí)現(xiàn)的評(píng)分顯示組件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • javascript DOM編程實(shí)例(智播客學(xué)習(xí))

    javascript DOM編程實(shí)例(智播客學(xué)習(xí))

    最近一直在努力學(xué)習(xí)DOM編程這塊,這是目前成就感最強(qiáng)烈的一塊了,畢老師很認(rèn)真的給我們講解了相關(guān)知識(shí),并在網(wǎng)上找了很多做的非常棒的網(wǎng)頁(yè)作為例程給我們進(jìn)行講解
    2009-11-11
  • 微信小程序云開(kāi)發(fā)之模擬后臺(tái)增刪改查

    微信小程序云開(kāi)發(fā)之模擬后臺(tái)增刪改查

    這篇文章主要為大家詳細(xì)介紹了微信小程序云開(kāi)發(fā)之模擬后臺(tái)增刪改查,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 淺聊一下JavaScript中的LHS和RHS查詢

    淺聊一下JavaScript中的LHS和RHS查詢

    在日常編碼中,我們通常關(guān)注代碼的邏輯和功能,但很少深入思考編譯器在幕后的工作,今天我們將學(xué)習(xí)一下LHS(Left-Hand Side)和RHS(Right-Hand Side)查詢,它們?cè)贘avaScript編譯和執(zhí)行中的關(guān)鍵作用,以及在我們的日常開(kāi)發(fā)中是如何發(fā)揮作用的,需要的朋友可以參考下
    2023-11-11

最新評(píng)論