JS中正則式reg問題

2021-09-14 01:13:16 字數 722 閱讀 2469

先來看看下面這段**

var flag =

true

;var reg=

/^(?:[0-9]?|10)$/g

;var iptlist =$(

".ipinter");

for(i=

0;iconsole.

log(flag)

;

這段**中 iplist 每個的值 value 都為 「0」;

正規表示式的作用是匹配 0-10 的數字

但是結果輸出卻為 false;

在 debugger 中可以看到,沒兩次迴圈,就會有一次判定為false

看看更改後的**:

var flag =

true

;var iptlist =$(

".ipinter");

for(i=

0;iconsole.

log(flag)

;

將 reg 宣告定義在迴圈內部,每次迴圈都會初始化乙個新的 reg

此時結果輸出為 true

這是因為regexp.test()方法,第一次從位置0開始查詢,可以匹配;第二次的查詢位置就不是0了,說以就不能匹配了。

解決方法也很簡單:

如上第二段**,每次使用重新初始化。

reg.lastindex = 0; 讓test每次從0開始匹配!

JS中正則方法的使用

js中使用正則的方法很多 一 string物件有四種使用正規表示式的方法 1 search 方法 返回與正規表示式查詢內容匹配的第乙個子字串的位置 偏移位 stringobj.search rgexp 引數 stringobj 必選項。要在其上進行查詢的 string 物件或字串文字。rgexp 必...

JS中正規表示式

js中正規表示式有幾種不同的使用方法,一些用法是通過字串物件來使用,另外一些通過正規表示式物件使用。一 regexp 正規表示式 的屬性和方法 1 屬性 regexp的例項有幾個唯讀的屬性 global表示是否為全域性匹配,igorecase表示是否忽略大小寫,multiline表示是否為多行匹配,...

js中正規表示式

1 正則的建立方式?第一種 通過new關鍵字建立 var reg new regexp 第二種 字面量建立 var reg 2.元字元 一 d 數字字元 0 9 d 非數字字元 w 數字 字母 下劃線字元 即單詞字元 w 非單詞字元 s 空格字元 s 非空格字元 b 單詞邊界 匹配的只是乙個位置 這...