用HTML字符替换句点

时间:2016-03-06 01:12:40

标签: javascript jquery

我遇到了一些代码问题。我输入了一个输入,段落中的文字使用<mark>突出显示。但是当我添加一段时间来突出显示所有句点时,代码会变得怪异并给我实际的html代码并且随机突出显示。所以我尝试添加一个替换器来改变周期。现在它不会吓坏,但不会突出任何东西。这是我的代码,尝试用html字符编号(&#46;)替换句点:

var i = document.getElementById("Bar").value;
var inpu = $.trim(i);
var inp = inpu.replace(".", "&#46;");
var SearchReq = new RegExp("(\\b" + inp + "\\b)", "gim");
var Notes = document.getElementById("NoteHolder").innerHTML;
var after = Notes.replace(SearchReq, "<mark class=" + ColorOptionReady + ">$1</mark>");
document.getElementById("NoteHolder").innerHTML = after;

代码有什么问题? (我尝试删除正则表达式中的“\ b”但是没有修复它。)

1 个答案:

答案 0 :(得分:5)

.替换为\\.(将其转义为\\反斜杠,以便在将字符串传递给RegExp时保持反斜杠:

var inp = inpu.replace(".", "\\.");

您的错误原因是.是在RegExp中具有特殊含义的字符,因此您必须在传递给RefExp之前将其转义。

有关详细信息,请参阅Special characters meaning in regular expressions

祝你好运!