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

如何用JavaScript正则仅替换多行字符串行首的数字加句号为<li>?

解决多行字符串中仅替换行开头1-2位数字加句号的问题

你的正则表达式之所以会错误替换行内内容,问题出在两点:

  • 没有限定匹配位置,会命中字符串里任意位置的数字加任意字符(.在正则里是通配符,并非字面意义的句号)
  • 未启用多行模式,^只会匹配整个字符串的开头,而非每一行的开头

正确的正则表达式为 ^\d{1,2}\./gm,各部分作用:

  • ^:在多行模式下匹配每一行的起始位置
  • \d{1,2}:精准匹配1到2位数字
  • \.:匹配字面意义的句号(必须转义,否则.会匹配任意字符)
  • g:全局替换所有符合条件的内容
  • m:启用多行模式,让^能识别每一行的开头

修改后的代码如下:

let text =`
1.
Some text here
Any text here
Some text here
2.
Some text here
Any text here 24
Some text here
30.
Some text here 42.
Any text here
Some text here`;
let regex = /^\d{1,2}\./gm;
let result = text.replace(regex, '<li>');
document.write(result);

运行后只会替换行开头的1.、2.、30.为<li>,行内的24和42.会被保留,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:40:36