javascript - 使用 jQuery 或 Javascript 获取括号内的字符串
问题描述
我需要在圆括号内获取字符串的一部分,例如字符串可以是:
FirstName LastName ( myemail@address.org )
我正在使用以下代码:
let string = 'FirstName LastName ( myemail@address.org )';
const regExp = /(([^()]*))/g;
let email = string.match(regExp);
当我尝试获取并打印电子邮件变量时,我得到了这个:
FirstName LastName ,,myemail@address.org,,
我的代码有什么问题?非常感谢您的帮助。
解决方案
我的代码有什么问题?
你的模式是错误的,这就是你得到错误结果的原因。可能你想匹配你的模式((([^()]*))
)中除了括号之外的所有东西,但这也匹配括号外的所有字符串,所以这就是为什么你FirstName LastName ,,myemail@address.org,,
根据你的模式输出得到的结果实际上是正确的。这是除括号外的所有内容。
您可以使用此模式:(?<=\().*?(?=\))
解释:
(?<=\()
这被称为积极的向后看,并回头检查(不匹配只是检查)里面的模式是否在后面?如果是则继续匹配。.*?
匹配所有内容零次或多次。(?=\))
这被称为正向前瞻,并向前检查(不匹配仅检查)其中的模式是否在前面?如果是则继续匹配。
因此,总体而言,此模式搜索首先以开头(
然后匹配所有内容的字符串,直到下一个字符为)
.
见正则表达式演示
代码:
let string = 'FirstName LastName ( myemail@address.org )';
const regExp = /(?<=\().*?(?=\))/g;
let email = string.match(regExp);
console.log(email[0].trim());
推荐阅读
- html - CDK 焦点陷阱在使用 Shift Tab 在对话框外单击时中断
- javascript - 为什么我不能嵌入谷歌趋势图表?
- linux - 如何打印多个空格,然后在 bash 的同一行上打印单词?
- node-red - 是否可以在 Node-RED 上的一个函数中获取子流名称?
- javascript - JavaScript Date() 与 Safari 和非 Safari 实现不一致
- azure-powershell - Azure PowerShell Az 模块:为 Databricks 生成不记名令牌
- javascript - Highcharts 组织结构图子链接重叠
- spring-boot - 如何在服务启动时使用 cron 表达式启动骆驼石英作业
- typescript - 构建时找不到模块
- r - 如果我退出,Rstudio 服务器会继续运行我的代码吗?