所有浏览器(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");
此外,是否有各种浏览器支持或不支持正则表达式功能的良好参考。
答案 0 :(得分:3)
是的,但是如果你使用任何字符语法 - 点“。”在正则表达式模式中,您可能需要将其更改为[\s\S]
以匹配跨行的任何字符。
答案 1 :(得分:1)
ECMA规范(ECMA-262)规定了可接受的正则表达式语法,并明确提到了多行支持。第15.10.2.6节特别论证了多线支持对断言的影响。
因此,如果浏览器支持ECMA-262规范,那么是的,它支持多行。
当然,您应该努力测试您的代码,然后才能确信它有效。这不是浏览器第一次无法正确实现规范。
编辑: 为了澄清,JavaScript 1.5与ECMA-262,Edition 3完全兼容。我了解以下浏览器支持JavaScript 1.5或更高版本:
实际上无法为Chrome找到合适的来源,但如果它不支持JavaScript> = 1.5,我会感到震惊。