簡體   English   中英

正則表達式替換未按預期在 nodejs 上工作的換行符

[英]Regex to replace newlines not working on nodejs as intended

我有在regex101上測試過的正則表達式,但是當我在 nodejs 中使用它時,它不會替換換行符。 正則表達式是/([ ]*\n)+/gm 它應該用一個換行符替換多個換行符。 代碼如下。 這段代碼是我的 vscode 擴展的一部分。 有人可以告訴我我做錯了什么嗎?

function format(str) {
    const regex = /([ ]*\n)+/gm;
    const subst = `\n`;
    const result = str.replace(regex, subst);
    return result;
}

 function format(str) { const regex = /([ ]*\n)+/gm; const subst = `\n`; const result = str.replace(regex, subst); return result; } console.log(format(`abc d s s`));

該問題很可能與 CRLF 行尾有關。

您可以使用

str.replace(/(?:\s*\n)+/g, '\n')

請注意,這里不需要m標志。

請參閱 JavaScript 演示:

 const str = "abc\r\n \r\nd\r\n\r\ns\r\n\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\ns"; console.log(str.replace(/(?:\s*\n)+/g, '\n')); const str2 = "abc\n \nd\n\ns\n\n\r\n\r\n\n \n\r\n \n\ns"; console.log(str2.replace(/(?:\s*\n)+/g, '\n'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM