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

标签 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"

因此,第一部分始终是联系号码,可以是任何格式,最后一部分始终是标签,我想删除该标签

最佳答案

您可以使用

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

请参阅regex demo .

如果您需要确保只删除水平空格*,请将 \s* 替换为 [^\S\r\n]*.

模式解释:

  • \s* - 零个或多个空格(替换为 [^\S\r\n] 以匹配水平空格,即 \s 并从中“减去”了 \r\n)
  • \( - 文字 ( 符号
  • [^()]* - 除 () 之外的零个或多个符号(替换为 [^)] * 如果括号内可以有()
  • \) - 结束 )
  • $ - 字符串结尾。

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/>";
}

关于javascript - 删除字符串末尾括号内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37879194/

相关文章:

java - Spring Web MVC : Regex in controller mapping

JavaScript 编码风格

javascript - window.event.srcElement 不适用于 firefox?

java - 从下面的页面中提取段落的正则表达式

R正则表达式: how to extract elements that contains two character in a certain order?

c# - 如何获取字符串末尾的数字?

javascript - passportjs 本地策略没有被调用

php - 在 javascript 中执行 php 脚本?

javascript - 如何解决 null ts 类型检查问题?

jquery - 正则表达式要求至少一位数字或留空