繁体   English   中英

所有浏览器都使用正则表达式处理多行搜索吗?

[英]Do all browsers handle searching multi-line with regex?

所有浏览器(IE6+、FF3+、Safari 3+、Chrome)是否会在搜索字符串中跨行边界执行 javascript 正则表达式搜索? 例子:

var sourceStr = "This is some text \nOn multiple lines\nAnd the 2nd line.";
sourceStr = sourceStr.replace(/line/g, "xxx");

此外,是否有关于各种浏览器支持或不支持哪些正则表达式功能的良好参考。

是的,但是如果您使用任何字符语法 - 点“。” 在正则表达式模式中,您可能需要将其更改为[\s\S]以匹配跨行的任何字符。

ECMA 规范 ( ECMA-262 ) 规定了可接受的正则表达式语法,并且明确提到了多行支持。 15.10.2.6 节特别演示了多行支持对断言的影响。

所以,如果浏览器支持 ECMA-262 规范,那么是的,它支持多行。

当然,您应该努力测试您的代码,然后才能确信它可以工作。 这不是浏览器第一次未能正确实现规范。

编辑:澄清一下,JavaScript 1.5 与 ECMA-262 第 3 版完全兼容。我了解以下浏览器支持 JavaScript 1.5 版或更高版本:

  • Safari 2.0 或更新版本 (Mac)
  • 卡米诺 0.8 或更新版本 (Mac)
  • Firefox 0.9 或更新版本(Windows、Mac、Linux)
  • Internet Explorer 6.0 或更新版本 (Windows)
  • Mozilla 1.2 或更新版本 (Linux)
  • Netscape 7.1 或更新版本(Windows、Mac)
  • Opera 8.0 或更新版本(Windows、Mac、Linux)

实际上找不到合适的 Chrome 来源,但如果它不支持 JavaScript >= 1.5,我会感到震惊。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM