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

使用jQuery移除字符串中第一个数字之前的所有文本

解决方法:移除第一个数字前的所有文本(保留HTML标签结构)

首先咱们来拆解下你当前代码的问题:

  • split([0-9]) 的写法有误,split() 接收正则表达式时需要用 / 包裹(即 /[0-9]/),但就算修正了这个,pop() 也只会取分割后的最后一段,完全不符合你「从第一个数字开始保留所有内容」的需求。
  • 你用了 text() 方法,这会把元素里的 <br> 标签转换成纯文本,处理后会丢失原有的换行结构,所以得用 html() 来处理带HTML的内容。

正确实现代码

咱们可以通过正则表达式匹配第一个数字之前的所有内容(包括非数字字符、HTML标签),然后将这部分替换为空字符串。具体代码如下:

$('.ProductItem__Desc').each(function(){
  $(this).html(function(_, htmlContent) {
    // 匹配开头到第一个数字前的所有内容,替换为空
    return htmlContent.replace(/^[^0-9]*/, '');
  });
});

代码细节解释

  • ^[^0-9]* 正则的含义:
    • ^ 表示从字符串的起始位置开始匹配
    • [^0-9] 表示匹配任意非数字字符(包含HTML标签、空格、换行符等)
    • * 表示匹配前面的规则零次或多次,也就是把第一个数字出现前的所有内容都覆盖到
  • html() 方法:用来获取和设置元素的HTML内容,这样能完整保留 <br> 标签的换行结构,不会破坏原有的排版。

测试你的示例输入

输入内容:

Hand knotted in Iran (Persian)<br>Wool on wool<br>3.6m x 2.8m<br>11' 10" x 9' 2"

经过上述代码处理后,输出完全符合你的期望:

3.6m x 2.8m<br>11' 10" x 9' 2"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 06:13:12