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

Do all browsers handle searching multi-line with regex?

本文关键字:搜索 处理 正则表达式 浏览器      更新时间:2023-09-26

所有浏览器(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");

此外,是否有任何关于regex功能在各种浏览器中受支持或不受支持的良好参考。

是的,但如果在正则表达式模式中使用任何字符语法-dot".",则可能需要将其更改为['s'S]以匹配行间的任何字符。

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

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

当然,在确信代码有效之前,您应该努力测试代码。这将不是浏览器第一次未能正确实现规范。

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

  • Safari 2.0或更新版本(Mac(
  • Camino 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,我会感到震惊。