我正在寻找使用javascript解析字段中的某些格式。我的规则是捕获一些我需要解决的额外问题。正则表达式为:

/[\((\)\s)-]/g


这个正则表达式可以正确清理:(123) 456-7890我遇到的问题是它也删除了所有空格,而不仅仅是在右括号后面的空格。我不是正则表达式方面的专家,但据我了解,(\)\s)仅会删除右括号和空格组合。正确的正则表达式是什么样的?它需要删除所有括号和破折号。另外,仅在右括号后立即删除空格。

我想要的结果就是这样。

我正在使用的替换方法应该这样工作

var str = mystring.replace(/[\((\)\s)-]/g, '');


(123) 456-7890应该变为正在工作的1234567890

leave me alone应该保留leave me alone问题是它正在变成leavemealone

最佳答案

这将完成工作:

var str = mystring.replace(/\)\s*|\(\s*|-/g, '');


正则表达式的解释:

\)\s* : Open parenthesis followed by any number of whitespace
|     : OR
\(\s* : Close parenthesis followed by any number of whitespace
|     : OR
-     : Hyphen


由于括号是用于分组的正则表达式元字符,因此,当您要按字面意义进行匹配时,需要对其进行转义。

关于javascript - Javascript正则表达式解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5407223/

10-14 15:27
查看更多