删除字符串末尾括号内的文本

时间:2016-06-17 10:25:52

标签: javascript regex

我想要一个正则表达式,它在括号中找到一个字符串&像我在下面的示例字符串中删除它,我想要执行此操作:

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"

所以第一部分将始终联系一个可以是任何格式的数字&最后一部分将始终是标签,我想删除该标签

1 个答案:

答案 0 :(得分:1)

您可以使用

.replace(/\s*\([^()]*\)$/, '')

请参阅regex demo

如果您需要确保只删除 horizo​​natal 空格*,请将\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;
&#13;
&#13;