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

内容全写注释里了- –

代码如下:

<script type=”text/javascript”>

/^$/.test(‘n’); //false,为什么呢,说明如下

var p = /^/mg;

var s = ‘1nnn2nn3’;

p.test(s); //跳过开始位置JS里好象没那个词- –

p.test(s);

alert(RegExp.rightContext.replace(/x0A/g, ‘\a’));

//由此得出^匹配的是n后面的位置或开始的位置

var p = /$/mg;

var s = ‘1nnn2nn3’;

p.test(s);

alert(RegExp.rightContext.replace(/x0A/g, ‘\a’));

//由此得出$匹配的是n前面的位置或结尾的位置

var p = /^s*$/mg;

var s = ‘1nnn2nn3’;

alert(s.replace(p, function (l, index) {

alert(index);

return ”;

}).replace(/x0A/g, ‘\a’));

/*

即位置或范围用|表示

第一次匹配

注锚点不耗字符,所以它匹配的内容是位置用|标明

内容用|内容|标明

^匹配的位置是1n|nn2n3n4n5

s匹配的是内容是1n|n|n2n3n4n5

$匹配的位置是1nn|n2n3n4n5

这时lastIndex为1nn|n2n3n4n5

所以第二次匹配时

^匹配的位置是1nn|n2n3n4n5

s匹配了n,然后$没成功所以回溯一次,然后匹配成功所以它实际没匹配东西即内容是1nn||n2n3

n4n5(就是空的)

$匹配的位置是1nn|n2n3n4n5

然后发现没变位置,所以强制驱动,设置lastIndex为1nnn|2n3n4n5

后面的操作和这次一样。。。所以匹配执行了3次

分开来看执行下面代码。。。

*/

var p = /^s*$/mg;

var s = ‘1nnn2nn3’;

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>

转载请注明:代码学堂>编程开发 > 正则学习 > javascript RegExp multiline多行匹配影响的^$

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!10210454@qq.com
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!

磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持

磊宇堂 » javascript RegExp multiline多行匹配影响的^$

提供最优质的资源集合

立即查看 了解详情