JavaScript >> Javascript 文檔 >  >> Tags >> regex

Safari 支持 XRegExp 0.2.2

當我幾天前發布 XRegExp 0.2 時,我還沒有在 Safari 或 Swift 中進行測試。當我不久後想起要這樣做時,我發現這兩個基於 WebKit 的瀏覽器都不喜歡它,並且在嘗試使用它時經常崩潰!這顯然是一件非常糟糕的事情,但由於主要的時間可用性問題,直到今晚我才能開始深入的錯誤排除和測試。

事實證明,Safari 的正則表達式引擎包含一個錯誤,該錯誤會導致在編譯包含以“[\\ 結尾的字符類的正則表達式”時引發錯誤 ”。

// These throw an error:
[ /[[\\]/ , /[^[\\]/ , /[abc[\\]/ ]

// ...While these are all fine:
[ /[\\[]/ , /[\[\\]/ , /[[]/ , /[\\]/ , /[[\\abc]/ , /[[\/]/ , /[[(\\]/ ]

// Testing:
try {
	RegExp("[[\\]");
	alert("OK!");
} catch (err) {
	alert(err);
	/* Safari shows:
	"SyntaxError: Invalid regular expression: missing terminating ] for
	character class" */
}

結果,我更改了 [^[\\] 的兩個實例 到 [^\\[] 並將版本號提高到 0.2.2。 XRegExp 現在已經過測試,並且在以下所有瀏覽器中均未出現任何已知問題:

  • Internet Explorer 5.5 – 7
  • 火狐 2.0.0.4
  • Opera 9.21
  • 適用於 Windows 的 Safari 3.0.2 測試版
  • 斯威夫特 0.2

您可以在此處獲取最新版本。


Tutorial JavaScript 教程
  1. 使用javascript在shadow root中獲取html元素

  2. 如何生成包含具有動態可添加和可移動行的表的 Div? - 添加了 JSfiddle

  3. Javascript:使用 Jest 進行單元測試

  4. 帶有 fs.promises 和 async await 的簡單代碼

  5. 在 JavaScript 中重用 Promise

  6. 這是什麼 ?

  7. 使用 confirm() 作為 if? 的條件

  1. React 中的參照平等

  2. 如何使用 JavaScript 訪問設備攝像頭(正面和背面)

  3. TestCafe 如何幫助您更快地交付

  4. 如果您現在需要抓取許多不同的網站,您會選擇哪種工具/語言組合?

  5. 間隔

  6. 簡化 React.js 中的條件渲染

  7. 嘗試使用 AngularJS 構建儀表板

  1. 從零開始的 Shopify 應用程序 #4 - 技術堆棧

  2. 我無法在三個 Js 中導入我的 obj 文件

  3. 如何刪除事件監聽器

  4. 用於處理從批量數據生成圖像的無服務器架構