Javascript - 替换文本beetwen特殊字符

时间:2018-04-20 14:19:11

标签: javascript string replace

我正在尝试在Javascript中替换字符串的特殊字符之间的所有内容。

var text = "Hello,\n>> Someone lalalala\nMore Text\n<<";

我尝试过以下代码:

var newText = text.replace(/>>.*<</, ">>Some other text<<");

但最后它实际上返回了文本变量。

我很欣赏这方面的一些想法。感谢。

2 个答案:

答案 0 :(得分:3)

正则表达式是&#34;贪婪&#34;,这意味着他们会尝试匹配可能的最长子字符串。由于.*字面意思是任何字符,因此它也会包含您的分隔符<<。因此,.*一直到达字符串的末尾,然后在此之后无法找到<<,因此匹配将失败。您必须在表达式中将其排除在外:

text.replace(/>>[^<]*<</, ">>Some other text<<");

答案 1 :(得分:0)

问题是&#39;。&#39;与新线不匹配。使用this answer

&#13;
&#13;
var text = "Hello,\n>> Someone lalalala\nMore Text\n<<";
var newText = text.replace(/>>[\s\S]*<</m, ">>Some other text<<");
console.log(newText);
&#13;
&#13;
&#13;