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

JS如何删除字符串中括号及内部文本 提取纯客户姓名

JS提取客户姓名(去除DNI后缀)实现方案

你当前通过document.querySelector获取到的是DOM节点对象,需要先读取节点的文本内容再做字符串处理,以下是两种可直接复用的实现方式:


方法1:固定分隔符分割(实现最简单,适配当前固定结构)

因为文本结构固定为称呼+姓名 (DNI: 身份编号),直接以固定的 (DNI:字符串做分割,取第一段结果即可,不会受编号长度、特殊字符影响:

// 获取目标DOM节点
const customerNameDom = document.querySelector("#Txt_customer_name > b")
// 提取文本、去除首尾空白后分割取姓名部分
const realCustomerName = customerNameDom.textContent.trim().split(' (DNI:')[0]

方法2:正则匹配替换(适配边界场景更灵活)

如果担心文本前后存在多余内容、或者括号前后空格数量不固定,可以用正则精准匹配末尾的DNI括号段做替换:

const customerNameDom = document.querySelector("#Txt_customer_name > b")
const realCustomerName = customerNameDom.textContent.trim().replace(/\s*\(DNI:.*?\)\s*$/, '')

正则规则说明:

  • \s* 匹配括号前后任意数量的空白字符(空格、换行等)
  • \(DNI: 匹配固定的左括号+DNI标识开头
  • .*? 非贪婪匹配括号内所有编号内容
  • \)\s*$ 匹配行尾的右括号+后续可能存在的空白,避免误删文本其他位置的括号内容

处理效果验证

所有示例文本处理后均能得到预期结果:

  • 输入Mr. Alan Turing (DNI: 012345678901234) → 输出Mr. Alan Turing
  • 输入Mr. Charles Babbage (DNI: 97845565) → 输出Mr. Charles Babbage
  • 输入Mr. Stephen Wozniak (DNI: 6448775) → 输出Mr. Stephen Wozniak

注意:不要直接对querySelector返回的DOM对象做字符串操作,必须先通过.textContent(或.innerText)拿到节点内的纯文本内容再处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:57:11