[英]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.