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

      百恒網絡

      南昌百恒網絡

      RegExp實例方法

      百恒網絡 2012-03-28 5270

      RegExp對象的主要方法是exec(),該方法是專門為捕獲組而設計的。exec()接受一個參數,即要應用模式的字符串,然后返回包含第一個匹配項信息的數組;或者在沒有匹配項的情況下返回null。返回的數組雖然是Array的實例,但包含兩個額外的屬性:index和input。其中,index表示匹配項在字符串中的位置,而input表示應用正則表達式的字符串。在數組中,第一項是與整個模式匹配的字符串,其他項是與模式中的捕獲組匹配的字符串(如果模式中沒有捕獲組,則該數組只包含一項)。請看下面的例子:

      var text="mom and dad and baby";

      var pattern=/mom( and dad( and baby)?)?/gi;

      var matches=pattern.exec (text);

      alert (matches.index); //O

      alert {matches.input); //¨mom and dad and baby"

      alert (matches[O]); //"mom and dad and baby"

      alert (matches[1]); //”and dad and baby"

      alert (matches[2]); //”and baby"

      這個例子中的模式包含兩個捕獲組。最內部的捕獲組匹配"and baby”,而包含它的捕獲組匹配”and dad”或者"and dad and baby”。當把字符串傳人exec()方法中之后,發現了一個匹配項。’因為整個字符串本身與模式匹配,所以返回的數組matchs的index屬性值為0。數組中的第一項是匹配的整個字符串,第二項包含與第一個捕獲組匹配的內容,第三項包含與第二個捕獲組匹配的內容。

      對于exec()方法而言,即使在模式中設置了全局標志(g),它每次也只會返回一個匹配項。在不設置全局標志的情況下,在同一個字符串上多次調用exec()將始終返回第一個匹配項的信息。而在設置全局標志的情況下,每次調用exec()則都會在字符串中繼續查找新匹配項,如下面的例子所示:

      var text="cat, bat, sat, fat";

      var patternl=/.at/;

      var matches=patternl.exec(text);

      alert (matches.index); //0

      alert (matches[0]); //cat

      alert (patternl.lastlndex);//o

      matches =patternl.exec(text);

      alert (matches .index)j //0

      alert (matches[O]); //cat

      alert (patternl.lastlndex); //0

      var pattern2=/.at/g;

      var matches=pattern2 .exec (text);

      alert (matches .index); //o

      alert (matches[0]); //cat

      alert (pattern2 .lastlndex); //0

      matches=pattern2.exec (text);

      alert (matches .index); //5

      alert (matches[0]); //bat

      alert (pattern2 .lastlndex); //8

      這個例子中的第一個模式patternl不是全局模式,因此每次調用exec()返回的都是第一個匹配項(”cat”)。而第二個模式pattern2是全局模式,因此每次調用exec()都會返回字符串中的下一個匹配項,直至搜索到字符串末尾為止。此外,還應該注意模式的las tlndex屬性的變化情況。在全局匹配模式下,las tlndex的值在每次調用exec()后都會增加,而在非全局模式下則始終保持不變。

      南昌網站制作公司前端開發工程師提醒IE 的JavaScript實現在lastlndex屬性上存在偏差,即使在非全局模式下,LastIndex屬性每次也會變。

      正則表達式的第二個方法是test(),它接受一個字符串參數。在模式與該參數匹配的情況下返回true;否則,返回fa-se。在只想知道目標字符串與某個模式是否匹配,但不需要知道其文本內容的情況下,使用這個方法非常方便:因此,test()方法經常被用在if語句中,如下面的例子所示:

      var text="000-00-000:

      var patter== /d{3}-d{2}-d{4}/;

      if (patter.test(text))

      alert ("The pattern was matched.");

      在這個例子中,我們使用正則表達式來測試了一個數字序列。如果輸入的文本與模式匹配,則顯示一條消息。這種用法經常出現在驗證用戶輸入的情況下,因為我們只想知道輸入是不是有效,至于它為什么無效就無關緊要了:

      RegExp實例繼承的:o oca-eString()和toString()方法都會返回正則表達式的字面量,與創建正則表達式的方式無關。例如:

      var pattern=new Reg_x:'{"\[bc\]at”, ”gi”);

      alert (pattern.toString()); ,//[bc]at/gi

      alert(pattern.toLocaleSting{)); ///[bc]at/gi

      即使上例中的模式是通過調用RegExp構造函數創建的,但toLocaleString()和toString()方法仍然會像它是以字面量形式創建的一樣顯示其字符串表示。

      南昌做網站公司工程師提示,正則表達式valueOf()方法返回正則表表達式本身。之所以會出現這種奇怪的問題,部分原因是標準沒有就該訪法應該返回什么做出明確規定。

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


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

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

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      国产成人精品美女在线| 精品视频在线观看一区二区| www.亚洲精品.com| 91精品视品在线播放| 国产日韩AV在线播放| 99热这里只有精品免费播放| 日韩蜜芽精品视频在线观看| 久久亚洲精品中文字幕| 精品视频一区二区| 国产精品一区在线播放| 久久中文精品无码中文字幕| 久久久久久久久无码精品亚洲日韩 | 精品久久久久久中文| 久久亚洲国产精品五月天| 国产成人精品大尺度在线观看| 国产成人精品日本亚洲专区6| 国产亚洲精品激情都市| 日韩在线视频线视频免费网站| 日本精品www色| 精品国产品香蕉在线观看75| 国产cosplay精品视频| 亚洲精品无码精品mV在线观看| 国产精品三级在线| 久久精品国产99精品最新| 午夜精品久久久久久久无码| 国模精品一区二区三区视频| 欧洲精品99毛片免费高清观看| 国产精品成人精品久久久| 国产精品V亚洲精品V日韩精品 | 无码人妻精品一区二区蜜桃百度 | 网曝门精品国产事件在线观看 | 亚洲精品国产啊女成拍色拍| 一本色道久久88精品综合| 国产日韩在线观看视频网站| 精品欧洲男同同志videos| 精品人妻一区二区三区浪潮在线 | 久久久久人妻精品一区二区三区 | 无码日韩精品一区二区人妻| 日韩精品无码一区二区三区免费| 亚洲精品国产美女久久久| www.精品视频|