首頁 >web前端 >js教程 >JS正規RegExp.test()使用注意事項(不具有重複性)

JS正規RegExp.test()使用注意事項(不具有重複性)

高洛峰
高洛峰原創
2017-01-09 15:23:361670瀏覽

本文實例分析了JS正規RegExp.test()使用注意事項。分享給大家供大家參考,具體如下:

先看下面這段程式碼:

// 2012-12-12 12:12:12
var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g;
// true
alert(regex.test("2012-12-12 12:12:12"));
// false
alert(regex.test("2012-12-12 12:12:12"));

執行結果已經在程式碼註解裡了,可以看到:對於同一個正規表示式物件regex,不能重複呼叫:第一次回傳true,第二次回傳false,很顯然這種效果不是我們想要的。這是因為RegExp.test()方法,第一次從位置0開始查找,可以匹配;第二次的查找位置就不是0了,說以就不能匹配了。

解決方式挺簡單:每次都讓test從第0個位置開始匹配就可以了:

// 2012-12-12 12:12:12
var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g;
// true
alert(regex.test("2012-12-12 12:12:12"));
regex.lastIndex = 0;
// true
alert(regex.test("2012-12-12 12:12:12"));

希望本文所述對大家JavaScript程式設計有所幫助。

更多JS正規RegExp.test()使用注意事項(不具有重複性)相關文章請關注PHP中文網!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn