我正在寻找使用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/