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

首頁 > 編程 > regex > 正文

javascript RegExp multiline多行匹配影響的^$

2020-01-20 22:19:12
字體:
來源:轉載
供稿:網友
內容全寫注釋里了- -
復制代碼 代碼如下:

<script type="text/javascript">
/^$/.test('/n'); //false,為什么呢,說明如下

var p = /^/mg;
var s = '1/n/n/n2/n/n3';
p.test(s); //跳過開始位置JS里好象沒那個詞- -
p.test(s);
alert(RegExp.rightContext.replace(//x0A/g, '//a'));
//由此得出^匹配的是/n后面的位置或開始的位置


var p = /$/mg;
var s = '1/n/n/n2/n/n3';
p.test(s);
alert(RegExp.rightContext.replace(//x0A/g, '//a'));
//由此得出$匹配的是/n前面的位置或結尾的位置

var p = /^/s*$/mg;
var s = '1/n/n/n2/n/n3';
alert(s.replace(p, function (l, index) {
alert(index);
return '';
}).replace(//x0A/g, '//a'));

/*
即位置或范圍用|表示
第一次匹配

注錨點不耗字符,所以它匹配的內容是位置用|標明
內容用|內容|標明

^匹配的位置是1/n|/n/n2/n3/n4/n5
/s匹配的是內容是1/n|/n|/n2/n3/n4/n5
$匹配的位置是1/n/n|/n2/n3/n4/n5

這時lastIndex為1/n/n|/n2/n3/n4/n5

所以第二次匹配時
^匹配的位置是1/n/n|/n2/n3/n4/n5
/s匹配了/n,然后$沒成功所以回溯一次,然后匹配成功所以它實際沒匹配東西即內容是1/n/n||/n2/n3

/n4/n5(就是空的)
$匹配的位置是1/n/n|/n2/n3/n4/n5
然后發現沒變位置,所以強制驅動,設置lastIndex為1/n/n/n|2/n3/n4/n5

后面的操作和這次一樣。。。所以匹配執行了3次

分開來看執行下面代碼。。。
*/

var p = /^/s*$/mg;
var s = '1/n/n/n2/n/n3';
p.test(s); //true
alert(RegExp.lastIndex); //3
p.test(s); //true
alert(RegExp.lastIndex); //強制驅動后的結果即4
p.test(s); //true
alert(RegExp.lastIndex); //7
p.test(s); //false
alert(RegExp.lastIndex); //匹配失敗沒設置global的RegExp對象
/^X$/g.test('a'); //false
alert(RegExp.lastIndex); //注:匹配失敗是不會設置global的RegExp對象的
/^X$/.test('X'); //true
alert(RegExp.lastIndex); //匹配成功當然會設置^^
</script>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遵义市| 北辰区| 百色市| 巴马| 阿巴嘎旗| 绥芬河市| 鄂托克前旗| 卫辉市| 和田县| 扬中市| 陈巴尔虎旗| 修文县| 怀集县| 剑阁县| 雷州市| 昌宁县| 磐安县| 大厂| 灵宝市| 恭城| 吉安县| 同仁县| 东辽县| 郴州市| 哈密市| 珲春市| 神农架林区| 红河县| 牟定县| 延寿县| 冕宁县| 河源市| 登封市| 余江县| 洛隆县| 韶关市| 上饶县| 固始县| 铜山县| 容城县| 静宁县|