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

老生常談JavaScript 正則表達(dá)式語法

 更新時(shí)間:2016年08月20日 09:23:27   投稿:jingxian  
下面小編就為大家?guī)硪黄仙U凧avaScript 正則表達(dá)式語法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

JavaScript定義正則表達(dá)式有兩種方法。

1.RegExp構(gòu)造函數(shù)

var pattern = new RegExp("[bc]at","i");

它接收兩個(gè)參數(shù):一個(gè)是要匹配的字符串模式,另一個(gè)是可選的標(biāo)志字符串。

2.字面量

var pattern = /[bc]at/i;

正則表達(dá)式的匹配模式支持三種標(biāo)志字符串:

g:global,全局搜索模式,該模式將被應(yīng)用于所有字符串,而并非搜索到第一個(gè)匹配項(xiàng)就停止搜索;

i:ingore case,忽略字母大小寫,即在確定匹配項(xiàng)時(shí)忽略模式和字符串大小寫;

m:multiple lines,多行模式,即在搜索到達(dá)一行文本末尾時(shí)會(huì)繼續(xù)查找下一行是否有匹配項(xiàng)。

這兩種創(chuàng)建正則表達(dá)式方法的不同之處在于,正則表達(dá)式字面量始終會(huì)共享同一個(gè)RegExp實(shí)例,而使用構(gòu)造函數(shù)創(chuàng)建的每一個(gè)新RegExp實(shí)例都是新實(shí)例。

元字符

元字符是擁有特殊意義的字符,正則表達(dá)式的元字符主要有:

( [ { \ ^ $ | ) ? * + .  

在不同的組合中元字符有其不同的意義。

預(yù)定義特殊字符

字符類  簡(jiǎn)單類

一般情況下正則表達(dá)式一個(gè)字符對(duì)應(yīng)字符串一個(gè)字符,但我們可以使用[]來構(gòu)建一個(gè)簡(jiǎn)單的類,來表示符合某一特征的一類字符。例如:

[abc]可以匹配方括號(hào)中的a、b、c或其任意組合的字符。

反向類

既然[]可以構(gòu)建一個(gè)類,那么自然就會(huì)聯(lián)想到與之對(duì)應(yīng)的不包含括號(hào)中內(nèi)容的類,這個(gè)類叫做反向類,例如[^abc]就可以匹配不是a或b或c的字符。

范圍類

有時(shí)候一個(gè)一個(gè)字符匹配太麻煩而且匹配的類型也相同,此時(shí)我們可以使用"-"連接線來表示某個(gè)閉區(qū)間之間的內(nèi)容,例如匹配所有小寫字母可以使用[a-z],如下:

匹配所有的0到9簡(jiǎn)直的任意數(shù)字可以使用[0-9]表示:

預(yù)定義類

對(duì)于如上我們創(chuàng)建的幾個(gè)類,正則表達(dá)式為我們提供了幾個(gè)常用的預(yù)定義類來匹配常見的字符,如下:

字符   等價(jià)類   含義
.   [^\n\r] 匹配除了回車符和換行符之外的所有字符
\d [0-9] 數(shù)字字符
\D [^0-9] 非數(shù)字字符
\s [\t\n\x0B\f\r] 空白字符
\S   [^\t\n\x0B\f\r] 非空白字符
\w [a-zA-Z_0-9] 單詞字符(字母、數(shù)字和下劃線)
\W [^a-zA-Z_0-9] 非單詞字符

量詞

上面的方法匹配字符都是一對(duì)一匹配的,如果某個(gè)字符連續(xù)出現(xiàn)多次按照上面的方法匹配會(huì)非常麻煩,因此我們想有沒有其它方法可以直接匹配多次重復(fù)出現(xiàn)的字符。正則表達(dá)式為我們提供了一些量詞,如下:

字符   含義  
? 出現(xiàn)零次或一次(最多一次)
+ 出現(xiàn)一次或多次(至少一次)
* 出現(xiàn)零次或多次(任意次)
{n} 出現(xiàn)n次
{n,m} 出現(xiàn)n到m次
{n,} 至少出現(xiàn)n次

貪婪模式與非貪婪模式

對(duì)于{n,m}這種匹配方式,到底是匹配n個(gè)還是匹配m個(gè)呢?這就涉及到匹配模式的問題。默認(rèn)情況下,量詞是盡可能多的匹配字符,也就是所謂的貪婪模式,例如:

var num = '123456789'; 
num.match(/\d{2,4}/g); //[1234]、[5678]、[9] 

與貪婪模式對(duì)于的是非貪婪模式,只需要在量詞之后加"?"即可,例如{n,m}?,就是按照最少的字符匹配,如下: 

var num = '123456789'; 
num.match(/\d{2,4}?/g); //[12]、[34]、[56]、[78]、[9] 

分組

量詞只能是單個(gè)字符匹配多次,如果我們希望匹配某一組字符多次呢?正則表達(dá)式中小括號(hào)可以定義一個(gè)字符串整體為一個(gè)分組。

我們想要匹配apple這個(gè)單詞出現(xiàn)4次可以這樣匹配(apple){4},如下:

如果想要匹配apple或orange出現(xiàn)4次,可以插入管道符"|",例如:

(apple|orange){4}

如果使用分組的正則表達(dá)式中出現(xiàn)多個(gè)小括號(hào)即多個(gè)分組,那么匹配結(jié)果就會(huì)把匹配項(xiàng)也分組并編號(hào),例如:

(apple)\d+(orange)

如果我們不希望捕獲某些分組,只需要在分組的小括號(hào)前面緊跟一個(gè)問號(hào)和冒號(hào)即可,例如:

(?:apple)\d+(orange)

邊界

正則表達(dá)式也為我們提供了幾個(gè)常用的邊界匹配字符,例如:

字符 含義
^ 以xx開頭
$ 以xx結(jié)尾
\b 單詞邊界,指[a-zA-Z_0-9]之外的字符
\B 非單詞邊界

其中單詞邊界匹配的是一個(gè)位置,這個(gè)位置的一側(cè)是構(gòu)成單詞的字符,但另一側(cè)為非單詞字符、字符串的開始或結(jié)束位置。

前瞻

前瞻用來匹配接下來出現(xiàn)的是或不是某一個(gè)特定的字符集。

表達(dá)式 含義
exp1(?=exp2) 匹配后面是exp2的exp1
exp1(?!exp2) 匹配后面不是exp2的exp1

看一個(gè)例子:

apple(?=orange)

(/apple(?=orange)/).test('appleorange123'); //true 
(/apple(?=orange)/).test('applepear345'); //false 

再看另一個(gè)例子:

apple(?!orange)

(/apple(?!orange)/).test('appleorange123'); //false 
(/apple(?!orange)/).test('applepear345'); //true 

以上這篇老生常談JavaScript 正則表達(dá)式語法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于動(dòng)態(tài)執(zhí)行代碼(js的Eval)實(shí)例詳解

    關(guān)于動(dòng)態(tài)執(zhí)行代碼(js的Eval)實(shí)例詳解

    下面小編就為大家?guī)硪黄P(guān)于動(dòng)態(tài)執(zhí)行代碼(js的Eval)實(shí)例詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • JavaScript 利用Cookie記錄用戶登錄信息

    JavaScript 利用Cookie記錄用戶登錄信息

    JavaScript與Cookie之利用Cookie記錄用戶登錄信息
    2009-12-12
  • js延遲加載的6種方式實(shí)例總結(jié)

    js延遲加載的6種方式實(shí)例總結(jié)

    js的延遲加載有助與提高頁面的加載速度,下面這篇文章主要給大家介紹了關(guān)于js延遲加載的6種方式,文中通過圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-04-04
  • JavaScript實(shí)現(xiàn)點(diǎn)擊改變圖片形狀(transform應(yīng)用)

    JavaScript實(shí)現(xiàn)點(diǎn)擊改變圖片形狀(transform應(yīng)用)

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊改變圖片形狀,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 如何利用Proxy更優(yōu)雅地處理異常詳解

    如何利用Proxy更優(yōu)雅地處理異常詳解

    這篇文章主要給大家介紹了關(guān)于如何利用Proxy更優(yōu)雅地處理異常的相關(guān)資料,文中通過實(shí)例代碼以及圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 基于javascript實(shí)現(xiàn)的購物商城商品倒計(jì)時(shí)實(shí)例

    基于javascript實(shí)現(xiàn)的購物商城商品倒計(jì)時(shí)實(shí)例

    本文主要介紹了基于javascript實(shí)現(xiàn)的購物商城商品倒計(jì)時(shí)實(shí)例,代碼詳細(xì),可直接復(fù)制試試看效果。需要的朋友可以參考借鑒
    2016-12-12
  • js實(shí)現(xiàn)簡(jiǎn)單秒表走動(dòng)的時(shí)鐘特效

    js實(shí)現(xiàn)簡(jiǎn)單秒表走動(dòng)的時(shí)鐘特效

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡(jiǎn)單秒表走動(dòng)的時(shí)鐘特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • javascript貪吃蛇完整版(源碼)

    javascript貪吃蛇完整版(源碼)

    這篇文章主要是對(duì)javascript貪吃蛇完整版(源碼)進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-12-12
  • JS異常處理的一個(gè)想法(sofish)

    JS異常處理的一個(gè)想法(sofish)

    由于網(wǎng)絡(luò)、瀏覽器問題、緩存等原因執(zhí)行js的時(shí)候會(huì)拋出異常接下來分享一個(gè)想法,基本上涉及到兩步:收集和使用,感興趣的你可以參考下哈,希望對(duì)你有所幫助
    2013-03-03
  • JavaScript實(shí)現(xiàn)彈出窗口效果

    JavaScript實(shí)現(xiàn)彈出窗口效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)彈出窗口效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評(píng)論

社会| 桑日县| 洛川县| 资源县| 通海县| 桃江县| 阳朔县| 龙游县| 洛浦县| 紫金县| 铁岭市| 资阳市| 淮南市| 墨脱县| 无棣县| 普安县| 宣恩县| 道孚县| 明星| 商都县| 福泉市| 宝应县| 比如县| 大名县| 句容市| 永泰县| 本溪市| 古田县| 龙海市| 贡嘎县| 县级市| 尤溪县| 广平县| 清远市| 金山区| 奉新县| 崇州市| 报价| 遂川县| 襄樊市| 新巴尔虎左旗|