網站中如果有使用到正規表達式,Safari 瀏覽器會在某個正規規則下報出以下錯誤:SyntaxError: Invalid regular expression: invalid group specifier name,接著網站可能就會一片空白或是無法正常運作。
以下是我接手案子內的其中一段程式碼:
transPoint(point) {
// 下面這段 Safari 會報錯,必須用 RegExp 包
return point.replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ',');
},
上面這段直接把正規規則包在 /.../g 裡在 Safari 上是會出錯的,需要使用 new RegExp('...', 'g') 包起來才可以,並且有使用到 \d 的部份要改用兩個反斜線來取代,例如 \d 需更改為 \\d