[英]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.