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

首頁 > 編程 > Regex > 正文

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

2020-03-16 21:13:54
字體:
來源:轉載
供稿:網友
javascript RegExp multiline多行匹配影響的^$,代碼中有詳細的注釋,方法大家學習。
 
 
內容全寫注釋里了- - 
復制代碼代碼如下:

<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> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁力市| 汉寿县| 郧西县| 腾冲县| 泰州市| 嘉禾县| 盐山县| 太和县| 井陉县| 柳州市| 托克逊县| 上犹县| 江陵县| 平顶山市| 三台县| 兴隆县| 娄烦县| 玉门市| 潞西市| 马山县| 清徐县| 安远县| 贞丰县| 雷山县| 东阳市| 永宁县| 南郑县| 芦溪县| 宜兴市| 普格县| 侯马市| 名山县| 福贡县| 阿克| 永和县| 察哈| 玉山县| 洮南市| 东兴市| 金华市| 垫江县|