最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

在ECMAScript3中,調(diào)用的是同一個RegExp對象,在ECMAScript5中,調(diào)用的是不同的RegExp對象 因為在EXCMAScript5中每執(zhí)行一次,就生成一個新的RegExp對象

所以在ECMAScript3中會造成程序的隱患,因為只要在一個地方對這個對象進(jìn)行修改的話,所有調(diào)用到這個對象的地方都會變化。

1.直接量字符

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

/javascript/
會直接匹配字符javascript

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

\o    NUL字符(\u0000)

\t    制表符(\u0009)

\n    換行符(\u000A)

\v    垂直制表符(\u000B)

\f    換頁符(\u000C)

\r    回車符(\u000D)

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

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

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

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

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

2.字符類

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

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

.        任意字符

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

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

\s      任何Unicode空白符

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

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

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

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

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

?    0或1次

+    1次或多次

*    任意次

{n}        n次

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

{n,}       n次或n次以上

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

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

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

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

4.選項|分組|引用

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

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

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

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

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

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

^    匹配字符串的開頭,在多行檢索中,匹配一行的開頭

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

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

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

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

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

6.修飾符

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

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

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

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

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

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

相關(guān)文章

  • JavaScript禁用右鍵單擊優(yōu)缺點分析

    JavaScript禁用右鍵單擊優(yōu)缺點分析

    在本篇文章里小編給大家分享了關(guān)于JavaScript禁用右鍵單擊優(yōu)缺點分析,有需要的朋友們學(xué)習(xí)下。
    2019-01-01
  • javascript substr和substring用法比較

    javascript substr和substring用法比較

    在js中substring和substr都是用來截取字符串的,那么substring和substr之間的具體區(qū)別在哪里,有沒有區(qū)別呢,下面我來給各位詳細(xì)引用一些實例來介紹這些問題
    2009-06-06
  • 詳解javascript立即執(zhí)行函數(shù)表達(dá)式IIFE

    詳解javascript立即執(zhí)行函數(shù)表達(dá)式IIFE

    本文主要介紹了javascript立即執(zhí)行函數(shù)表達(dá)式IIFE的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • JavaScript圖片的Base64編碼以及轉(zhuǎn)換詳解

    JavaScript圖片的Base64編碼以及轉(zhuǎn)換詳解

    現(xiàn)在網(wǎng)站為了提升用戶的瀏覽體驗越來越多的使用了圖片,而這些圖片通常以 Base64 的形式存儲和加載,下面這篇文章主要給大家介紹了關(guān)于JavaScript圖片的Base64編碼以及轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • d3繪制基本的柱形圖的實現(xiàn)代碼

    d3繪制基本的柱形圖的實現(xiàn)代碼

    柱形圖是圖表中常見的一種,這篇文章主要介紹了d3繪制基本的柱形圖的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • js漸變顯示漸變消失示例代碼

    js漸變顯示漸變消失示例代碼

    漸變顯示漸變消失的特殊效果在使用中還是比較常見的,本文簡單的實現(xiàn)了一個,大家如何需要可以參考下
    2013-08-08
  • BootStrap 動態(tài)添加驗證項和取消驗證項的實現(xiàn)方法

    BootStrap 動態(tài)添加驗證項和取消驗證項的實現(xiàn)方法

    這篇文章主要介紹了BootStrap 動態(tài)添加驗證項和取消驗證項的實現(xiàn)方法的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • 微信小程序比較兩個數(shù)大小的實現(xiàn)方法

    微信小程序比較兩個數(shù)大小的實現(xiàn)方法

    最近在工作中遇到一個需求,可以自動對比兩個數(shù)的大小,下面這篇文章主要給大家介紹了關(guān)于微信小程序比較兩個數(shù)大小的實現(xiàn)方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • js簡單時間比較的方法

    js簡單時間比較的方法

    這篇文章主要介紹了js簡單時間比較的方法,通過2個自定義函數(shù)實現(xiàn)針對時間與日期的比較功能,涉及javascript日期及時間換算與比較操作相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • 判斷客戶端瀏覽器是否安裝了Flash插件的多種方法

    判斷客戶端瀏覽器是否安裝了Flash插件的多種方法

    各種方法判斷客戶端瀏覽器是否安裝了Flash插件,對于必須要支持flash才能瀏覽的頁面來說,提前做下說明,用戶體驗會更好。
    2010-08-08

最新評論

河西区| 东光县| 和田县| 德兴市| 绥宁县| 南充市| 永康市| 靖州| 墨脱县| 百色市| 松江区| 蒙城县| 迁安市| 昌图县| 察哈| 嘉义县| 葫芦岛市| 桃源县| 镇赉县| 息烽县| 康乐县| 民权县| 天台县| 金川县| 荆门市| 赤峰市| 怀来县| 清新县| 锡林郭勒盟| 武城县| 轮台县| 南宫市| 遂昌县| 托里县| 辛集市| 青海省| 凤冈县| 庄浪县| 德保县| 柘城县| 乐东|