You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery或JavaScript提取括号内字符串的代码问题排查

问题原因

你的正则表达式存在两处核心错误:

  1. 没有对要匹配的真实圆括号做转义处理:正则中(和)默认代表捕获组的起止标记,要匹配字符串里实际存在的左、右圆括号,需要写成转义形式\(、\)
  2. 现有正则的匹配逻辑是捕获所有不含(、)的字符片段,没有限定只匹配括号包裹的内容,所以会把括号外的姓名字段、括号前后的空字符段都识别为匹配结果,最终返回多余内容。

修正后的代码

let string = 'FirstName LastName ( myemail@address.org )';
// \(: 匹配左括号,([^()]*): 捕获括号内所有不含括号的内容,\): 匹配右括号
const regExp = /\(([^()]*)\)/;
let matchResult = string.match(regExp);
// 取第一个捕获组的内容,trim去除括号内的前后空格
let email = matchResult ? matchResult[1].trim() : '';
console.log(email); // 输出:myemail@address.org

如果需要全局匹配多个括号内的内容,可以保留g修饰符,配合exec方法遍历获取所有捕获组:

let string = 'FirstName (aaa@test.com) LastName (bbb@test.com)';
const regExp = /\(([^()]*)\)/g;
let emails = [];
let match;
while((match = regExp.exec(string)) !== null) {
  emails.push(match[1].trim());
}
console.log(emails); // 输出:['aaa@test.com', 'bbb@test.com']

内容的提问来源于stack exchange,提问作者Federico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 16:24:04