js正则表达式不匹配单词边界\ b

时间:2016-02-27 15:22:02

标签: javascript regex

我有这个字符串

Vestibulum purus quam, \n\nscelerisque ut, \nmollis sed, nonummy id.

我试图得到这个结果

Vestibulum purus quam, \nscelerisque ut, mollis sed, nonummy id.

这是用\n\n替换双\n而用\n替换""

我正在使用这个正则表达式:

var regex = /\B\\n/g,
    result = string.replace(regex, " ");

我在https://regex101.com/r/sV9eQ1/1尝试了,但即使正则表达式应该完成这项任务,它也根本不起作用。

codepen

有任何线索吗?

3 个答案:

答案 0 :(得分:2)

感谢Casimir的评论和Tim007的线索,我用以下方法解决了这个问题:

/\n(?![\n]+)/g

因为newline \B赢得了工作。

谢谢大家。

答案 1 :(得分:1)

尝试以下方法:

var str = "Vestibulum purus quam, \n\nscelerisque ut, \nmollis sed, nonummy id.";
var replaced = str.replace(/\s([\n]{1})/gi, " ").replace(/([\n]{2,})/gi, "\n");

console.log(replaced);
// the output:

Vestibulum purus quam,
scelerisque ut, mollis sed, nonummy id.

答案 2 :(得分:0)

试试这个

(\\n[\\n]+)

希望这有帮助。

string = 'Vestibulum purus quam, \n\n\n\nscelerisque ut, \nmollis sed, nonummy id.'

result = string.replace(/(\\n[\\n]+)/g, " ");
//console.log("Result:", string.indexOf("\n\n");
console.log("Result:", result);