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