我想要一个正则表达式,它在括号中找到一个字符串&像我在下面的示例字符串中删除它,我想要执行此操作:
09373 837 937 (mobile) // Output should be "09373 837 937"
9838373838 (home) // Output should be "9838373838"
+19383947388 (home) // Output should be "+19383947388"
(938)3947388 (mobile) // Output should be "(938)3947388"
所以第一部分将始终联系一个可以是任何格式的数字&最后一部分将始终是标签,我想删除该标签
答案 0 :(得分:1)
您可以使用
.replace(/\s*\([^()]*\)$/, '')
请参阅regex demo。
如果您需要确保只删除 horizonatal 空格*,请将\s*
替换为[^\S\r\n]*
。
模式说明:
\s*
- 零个或多个空格(替换为[^\S\r\n]
以匹配水平空格,即\s
与\r
和\n
"减去&# 34;来自它)\(
- 文字(
符号[^()]*
- 除(
和)
以外的零个或多个符号(如果括号内有[^)]*
,则替换为(
)\)
- 结束)
$
- 字符串结束。
var re = /\s*\([^()]*\)$/g;
var strs = ['09373 837 937 (mobile)','9838373838 (home)','+19383947388 (home)','(938)3947388 (mobile)'];
for (var s = 0; s < strs.length; s++) { // Demo
document.body.innerHTML += "Replacing in \"<i>" + strs[s] + "</i>\"... ";
document.body.innerHTML += "Result: <b>\"" + strs[s].replace(re, '') + "\"</b><br/>";
}
&#13;