繁体   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