[英]Regex replace a set of characters
我想用Javascript字符串中的空字符替換+
-
(
)
和space
。 我正在使用的表達式是:
"+1 - (042) - 123456".replace(/[\+\-\' '\(\)]/, "");
結果是:
"1 - (042) - 123456"
僅+
代替,其他字符不代替。 我的表達方式有什么錯誤?
當您使用方括號列出要刪除/更改的字符或其他內容時,您不想對其進行轉義。 我建議使用\\s
代替 ,當然,您需要全局標志
g
。
"+1 - (042) - 123456".replace(/[+()\s-]/g, "")
使用g標志:
/[\+\-\' '\(\)]/g
JS:
"+1 - (042) - 123456".replace(/[\+\-\' '\(\)]/g, "");
g
表示“全局搜索”,表示必須替換正則表達式的每個匹配項。
您需要包括g
全局標志,以使模式在同一行上匹配兩次或更多次。 而且,您不必在字符類中包含單引號。
"+1 - (042) - 123456".replace(/[-+() ]/g, "");
正如他們在答案中提到的idmean一樣,您應該添加g(global)標志,否則一旦找到第一個匹配項,該函數就會停止。
但是,RegEx中有一些多余的轉義符和字符。
這就是RegEx的最簡單形式:
/[+) (-]/g
我不明白為什么您的RegEx中有單引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.