簡體   English   中英

string.replace在Firefox中不起作用?

[英]string.replace not working in Firefox?

我的Oracle Apex 4.2頁面中有許多動態操作,在電話號碼輸入字段中有“執行Javascript代碼”操作:

$s("P40_MOBILE_PHONE", $v("P40_MOBILE_PHONE").replace(/[()-\s]+/g, ''));

這適用於IE和Chrome。 但是,在Firefox中,它不僅不起作用,而且會導致頁面上的所有其他動態操作完全停止工作。

這個和其他動態動作之間的唯一區別似乎是使用了string.replace(/[()-\\s]+/g, '') 這應該從電話號碼中刪除任何空格, ()-字符。

正如@dandavis在評論中所說,逃避破折號是有效的(盡管不需要逃避括號)。

如果您嘗試運行代碼

/[()-\s]+/

你得到

SyntaxError: invalid range in character class

這是因為Firefox試圖將短划線用作范圍字符,而不是破折號。

要修復它,您可以:

  • 逃離破折號: /[()\\-\\s]+/
  • 將短划線放在開頭或結尾: /[-()\\s]+//[()\\s-]+/

為了將來參考,修改正則表達式如下修復了問題:

replace(/[\(\)\-\s]+/g, '')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM