簡體   English   中英

正則表達式替換字符集

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

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