我有如下一段文字
let str = '中华\n\n 崛起\n 只读书\n 我是 123 中国 1111 人,中华 333 人名';
\n
之后会自动缩进,数字和文字之间自动添加空格隔开。我的代码如下:
// 这行可以
str = str.replace(/\n(?!\s{4})/g, '\n ');
// 后置添加空格也可以
str = str.replace(/(\d+)(?!\s|\d)/g, '$1 ');
// 唯独前置添加空格,会重复匹配,
# 这样子写匹配不到
str = str.replace(/(?!\s|\d)(\d+)/g, '$1 ');
# 这样子写,会导致匹配多次,前面空格不断增多
str = str.replace(/(?!\s)(\d+)/g, ' $1');
已经解决使用后行断言
str = str.replace(/(?<!\s|\d)(\d+)/g, ' $1');