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