十年專注于品牌網站建設 十余年專注于網站建設_小程序開發_APP開發,低調、敢創新、有情懷!
      南昌百恒網絡微信公眾號 掃一掃關注
      小程序
      tel-icon全國服務熱線:400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡微信小程序

      百恒網絡

      南昌百恒網絡

      ECMAScript RegExp類型及簡單應用

      百恒網絡 2012-03-24 5067

      ECMAScript通過RegExp類型來支持正則表達式。使用下面類似Perl的語法,就可以創建一個正則表達式:

      var expression=/pattern/flags;

      其中的模式(pattern)部分可以是任何簡單或復雜的正則表達式,可以包含字符類、限定符、分組,向前查找,以及反向引用。每個正則表達式都可帶有一或多個標志( flags),用以標明正則表達 式的行為。正則表達式的匹配模式支持下列3個標志:

      ◎g——表示全局(global)模式,即模式將被應用于所有字符串,而非在發現第一個匹配項時立即停止;

      ◎i——表示不區分大小寫( case-insensitive)模式,即在確定匹配項時忽略模式與字符串的大小寫;

      ◎m——表示多行( multiline)模式,即在到達一行文本末尾時還會繼續查找下一行中是否存在與模式匹配的項。

      因此,一個正則表達式就是一個模式與上述3個標志的組合體。不同組合產生不結果,如下面的例子所示:

      /*

      *匹配字符串中所有"at"的實例

      */

      var patternl=/at/g;

      /*

      *匹配第一個”bat”或”cat",不區分大小寫

      */

      var pattern2=/[bcl at/i;

      /*

      *匹配所有以”at”結尾的3個字符的組合,不區分大小寫

      */

      var pattern3=/.at/gi;

      與其他語言中的正則表達式類似,模式中使用的所有元字符都必須轉義。正則表達式中的元字符包括:

      ( [ { ^ $ | ) ? * + .]}

      這些元字符在正則表達式中都有一或多種特殊用途,因此如果想要匹配字符串中包含的這些字符.就必須對它們進行轉義。下面給出幾個例子:

      /*

      *匹配第一個" bat”或"cat",不區分大小寫

      */

      var patternl=/[bc] at/i;

      *匹配第一個”[bc]at",不區分大小寫

      */

      var pattern2=/\[bc] at/i;

      *匹配所有以"at”結尾的3個字符的組合,不區分大小寫

      */

      var pattern3=/.at/gi;

      *匹配所有”.at”,不區分大小寫

      */

      var pattern4=/\.at/gi;

      在上面的例子中,patternl匹配第一個”bat”或”cat”,不區分大小寫。而要想直接匹配"[bc]at"的話,就需要像定義pattern2 -樣,對其中的兩個方括號進行轉義。對于pattern3來說,句點表 示位于”at”之前的任意一個可以構成匹配項的字符。但如果想匹配”.at”,則必須對句點本身進行轉義,如pattern4所示。

      前面舉的這些例子都是以字面量形式來定義的正則表達式。另一種創建正則表達式的方式是使用RegExp構造函數,它接受兩個參數:一個是要匹配的字符串模式,另一個是可選的標志字符串。可以使用字面量定義的任何表達式,都可以使用構造函數來定義,如下面的例子所示:

      /*

      *匹配第一個“bat n或”cat”,不區分大小寫

      */

      var patternl=/[bc]at/i;

      /*

      *與patternl相同,只不過是使用構造函數創建的

      */

      var pattern2=new RegExp(”[bc] at".”i");

      在此,南昌網站建設公司前端開發工程師提醒,patternl和pattern2是兩個完全等價的正則表達式。要注意的是,傳遞給RegExp構造函數的兩個參數都是字符串(不能把正則表達式字面量傳遞給RegExp構造函數)。由于RegExp構造函數的模式參數是字符串,所以在某些情況下要對字符進行雙重轉義。所有元字符都必須雙重轉義,那些已經轉義過的字符也是如此,例如\n(字符\在字符串中通常被轉義為\\,而在正則表達式字符串中就會變成\\)。下表給出了一些模式,左邊是這些模式的字面量形式,右邊是使用RegExp構造函數定義相同模式時使用的字符串。

      字面量模式 等價的字符串

      /{bc}at/ "\[bc\]at"

      /.at/ "\\.at"

      /name/age/ "name /age"

      /\d.d{1,3}/ ”\\d.\\d(1,2)”

      /\w\hello\\123/ ”\W\\hello\\123”

      希望本文對廣大站長或從事企業網站建設公司的團隊有所幫助,如對此不太理解的,可以與南昌網絡公司百恒網絡技術部聯系。我們很高興與廣大站長和從事企業網站建設公司技術人員分享我們的技術和經驗。


      400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡小程序

      歡迎您的光顧,我們將竭誠為您服務×

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      精品国产一区二区三区香蕉事 | 中文无码精品A∨在线观看不卡| 久久精品丝袜高跟鞋| 国内精品久久久久久久久| 国产VA免费精品高清在线| 日韩精品中文字幕无码专区 | 国产精品视频一区二区三区四| 国产精品自产拍在线观看花钱看| 日韩精品电影在线观看| 亚洲欧洲国产日韩精品| 国产午夜精品1区2区3福利| 青草久久精品亚洲综合专区| 中文字幕无码精品亚洲资源网久久| 亚洲av专区无码观看精品天堂| 人妻少妇精品视频一区二区三区| 无码人妻精品一区二区三区东京热 | 在线精品一区二区三区| 日本一二三精品黑人区| 亚洲欧洲国产经精品香蕉网| 精品午夜福利在线观看| 久久久久99精品成人片直播 | 2020天堂在线亚洲精品专区| 精品欧洲AV无码一区二区男男| 亚洲精品美女在线观看| 久久精品国产日本波多野结衣| 亚洲精品在线播放| 精品国产VA久久久久久久冰| 精品久久久久香蕉网| 久久精品国产男包| 99久久久国产精品免费无卡顿| 99久久国产热无码精品免费| 免费99精品国产自在现线| 久久这里的只有是精品23| 国产99久久久国产精品小说| 国产精品白丝AV在线观看播放| 国内大量揄拍人妻精品視頻| 精品免费国产一区二区| 国产精品宅男在线观看| 日韩动漫av在线播放一区| 免费精品国产日韩热久久| 亚洲AⅤ永久无码精品AA|