Javascript 正则表达式替换文本行中的前导空格

Javascript 正则表达式替换文本行中的前导空格,javascript,regex,Javascript,Regex,我有一个字符串: " Some text here\n Some new line text here" 我需要从中得到: "----Some text here\n---Some new line text here" 因此,行首的每个空格(字符串或换行符)都将替换为短划线 不确定如何以最简单的方式实现它。请尝试以下操作: > " Some text here\n Some new line text here".replace(/^\s+/gm, '----')

我有一个字符串:

"    Some text here\n   Some new line text here"
我需要从中得到:

"----Some text here\n---Some new line text here"
因此,行首的每个空格(字符串或换行符)都将替换为短划线

不确定如何以最简单的方式实现它。

请尝试以下操作:

> "    Some text here\n   Some new line text here".replace(/^\s+/gm, '----')
"----Some text here\m----Some new line text here"
或:

请尝试以下操作:

> "    Some text here\n   Some new line text here".replace(/^\s+/gm, '----')
"----Some text here\m----Some new line text here"
或:


有一种方法可以使用lookback单独匹配每个领先模式,但这是一个仅兼容ECMAScript 2018+的解决方案

可以采用Lookbehind,请参阅RegExp Lookbehind断言。 目前,它们受到Chrome、Edge、Opera(包括Opera Mobile、三星互联网和Node.js)的支持。于2020年6月30日发送至SpiderMonkey RegExp引擎

当前场景的解决方案:

.replace(/(?<=^\s*)\s/gm, '-')
其中
[^\S\n\v\f\r\u2028\u2029]
匹配除换行符、垂直制表符、换行符、回车符、换行符和段落分隔符以外的任何空白字符。看

JS演示:

//任何空格字符
console.log(“此处有一些文本\n\n此处有一些新行文本”

.replace(/(?有一种方法可以使用lookback单独匹配每个领先模式,但这是一种仅与ECMAScript 2018+兼容的解决方案

可以采用Lookbehind,请参阅RegExp Lookbehind断言。 目前,它们由Chrome、Edge、Opera(包括Opera Mobile、三星互联网和Node.js)支持,并于2020年6月30日安装到SpiderMonkey RegExp引擎

当前场景的解决方案:

.replace(/(?<=^\s*)\s/gm, '-')
其中
[^\S\n\v\f\r\u2028\u2029]
匹配除换行符、垂直制表符、换行符、回车符、换行符和段落分隔符以外的任何空白字符。请参阅

JS演示:

//任何空格字符
console.log(“此处有一些文本\n\n此处有一些新行文本”

.替换(/(?谢谢。是的,第二个选项有效,第一个不确定。我想知道这是否是最简单的方法。谢谢。是的,第二个选项有效,第一个不确定。我想知道这是否是最简单的方法。你的问题解决了你的问题。你想用一个破折号代替一个空格。正如答案所示,正则表达式很好地映射了自然语言。你的questions解决了您的问题。您希望将一个空格替换为一个破折号。正如答案所示,正则表达式可以很好地从自然语言映射。无需对正确答案进行向下投票,请参阅。这不是我第一次看到向下投票回答较旧的问题。它很有效,而且解释得很好++无需对正确答案进行向下投票,请参阅。这不是第一次我看到一个否决票回答了一个老问题。这很有效,而且解释得很好++