我想将+
-
(
)
和space
替换为Javascript字符串中的空字符。我使用的表达式是:
"+1 - (042) - 123456".replace(/[\+\-\' '\(\)]/, "");
导致:
"1 - (042) - 123456"
仅替换+
而不替换其他字符。我的表达中的错误是什么?
答案 0 :(得分:3)
当您使用方括号列出要移除/更改的字符或其他内容时,您不想逃避它们。我建议使用\s
代替,当然,您需要全局标记 -
g
。
"+1 - (042) - 123456".replace(/[+()\s-]/g, "")
答案 1 :(得分:2)
使用g标志:
/[\+\-\' '\(\)]/g
JS:
"+1 - (042) - 123456".replace(/[\+\-\' '\(\)]/g, "");
g
表示“全局搜索”,这意味着必须替换正则表达式的每个匹配。
答案 2 :(得分:0)
您需要包含g
全局标记才能使模式在同一行上匹配两次或更多次。而且你不需要在角色类中加入单引号。
"+1 - (042) - 123456".replace(/[-+() ]/g, "");
答案 3 :(得分:0)
正如他们在答案中提到的那样,你应该添加g(全局)标志,否则一旦找到第一个匹配函数就会停止。
但是,您的RegEx中有一些冗余转义和字符。
您的RegEx如何以最简单的形式出现:
Object
我没有理解你的RegEx中有单引号的原因。