我遇到了一些代码问题。我输入了一个输入,段落中的文字使用<mark>
突出显示。但是当我添加一段时间来突出显示所有句点时,代码会变得怪异并给我实际的html代码并且随机突出显示。所以我尝试添加一个替换器来改变周期。现在它不会吓坏,但不会突出任何东西。这是我的代码,尝试用html字符编号(.
)替换句点:
var i = document.getElementById("Bar").value;
var inpu = $.trim(i);
var inp = inpu.replace(".", ".");
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”但是没有修复它。)
答案 0 :(得分:5)
将.
替换为\\.
(将其转义为\\
反斜杠,以便在将字符串传递给RegExp时保持反斜杠:
var inp = inpu.replace(".", "\\.");
您的错误原因是.
是在RegExp中具有特殊含义的字符,因此您必须在传递给RefExp之前将其转义。
有关详细信息,请参阅Special characters meaning in regular expressions。
祝你好运!