国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

淺談regExp的test方法取得的值變化的原因及處理方法

2024-05-06 16:35:28
字體:
來源:轉載
供稿:網友

1、JavaScript 正則表達式對象RegExp的test方法,用于檢測一個字符串是否匹配某個模式。

字面量定義RegExp對象:var re = /pattern/attributes,其中attributes可以是g,i,m;

閱讀以下程序:

<script type="text/javascript"> var str = 'abc123'; var re = /^abc/g ;var result1 = re.test(str); var result2 = re.test(str); var result3 = re.test(str); document.write('result1:' + result1 + '<br/>'); document.write('result2:' + result2 + '<br/>'); document.write('result3:' + result3); </script>

我們會認為打印結果應該是true;true;true;

而實際情況卻是true;false;true;

2、為什么第二個結果是false?

發現RegExp對象有一個lastIndex的屬性,如果使用了全局修飾符,那么執行test方法后,lastIndex就會記錄匹配的字符串在原始字 符串中最后一位的索引加一,例如執行了var result1 = re.test(str)后lastIndex為3(document.write('re.lastindex:' + re.lastIndex+ '<br/>');),如果沒有發現匹配lastIndex置為0。當下次再執行時,對給定的字符串匹配不是從開頭位置,而是要依據lastIndex提供的位置,由于這個原因,所以導致上例中result2的值為false。

3、處理方法:去除g;

即:var re = /^abc/g ;變為 var re = /^abc/;

以上這篇淺談regExp的test方法取得的值變化的原因及處理方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。

 


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卢湾区| 独山县| 内丘县| 广河县| 会理县| 基隆市| 太仓市| 富顺县| 民权县| 新郑市| 上犹县| 沾化县| 宜丰县| 宁津县| 武清区| 凉山| 瓮安县| 奉化市| 太仓市| 桃江县| 庐江县| 深圳市| 敖汉旗| 丰镇市| 洪洞县| 蚌埠市| 鸡东县| 萝北县| 嘉义县| 皋兰县| 茂名市| 白山市| 丹巴县| 郑州市| 谢通门县| 仙游县| 奉化市| 菏泽市| 佳木斯市| 中阳县| 深州市|