用 JS 正则实现排版文字,先行断言的正则是我写的有问题吗?

DavidNineRoc 1月前 14

我有如下一段文字

let str = '中华\n\n 崛起\n 只读书\n     我是 123 中国 1111 人,中华 333 人名';
  1. 想要做到\n之后会自动缩进,数字和文字之间自动添加空格隔开。
  2. 是可以多次排版,不会导致格式错乱。

我的代码如下:

// 这行可以
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');

最新回复 (0)
  • 游客
    2
返回