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

如何在JavaScript中仅为紧跟数字的连字符前添加换行

问题:仅在紧跟数字的连字符前插入换行

目标格式

PSA-image report on
-15.12.1402 (05.03.2024): 0.15 ng/ml
-19.04.1403 (09.07.2024): 0.36ng/ml.

原单行字符串

let string = `PSA-report on -15.12.1402 (05.03.2024): 0.15 ng/ml -19.04.1403 (09.07.2024): 0.36ng/ml.`

尝试的代码(存在问题)

string = string.replaceAll('-', '\n-');

这段代码会替换所有连字符,包括PSA-report中的连字符,不符合需求。

解决方案

使用正则表达式的正向预查,精准匹配后面紧跟数字的连字符,再进行替换。同时如果需要修正开头的文本,可先做一次字符串替换:

// 修正开头的文本(按需执行)
string = string.replace('PSA-report on', 'PSA-image report on');
// 仅在后面紧跟数字的连字符前插入换行
string = string.replace(/-(?=\d)/g, '\n-');

正则说明

  • -(?=\d):匹配连字符-,且要求该连字符后面紧跟一个数字((?=\d)是正向预查,仅做匹配检查不捕获内容)
  • /g:全局匹配标志,确保所有符合条件的连字符都被替换

执行后得到的结果与目标格式一致:

PSA-image report on 
-15.12.1402 (05.03.2024): 0.15 ng/ml 
-19.04.1403 (09.07.2024): 0.36ng/ml.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:54:59