我的一些代码有问题。我输入了一个输入,段落中的文本使用 <mark>
突出显示。 .但是,当我添加一个句点以突出显示所有句点时,代码会崩溃并为我提供实际的 html 代码并随机突出显示。所以我尝试添加一个替换器来更改周期。现在它不会 panic ,但不会突出显示任何内容。这是我尝试用 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”,但没有解决问题。)
最佳答案
将 .
替换为 \\.
(将其转义,\\
反斜杠需要在将字符串传递给 RegExp 时保留反斜杠):
var inp = inpu.replace(".", "\\.");
您的错误原因是 .
是在 RegExp 中具有特殊含义的字符,因此您必须在传递给 RefExp 之前将其转义。
参见 Special characters meaning in regular expressions获取更多信息。
祝你好运!
关于javascript - 用 HTML 字符替换句点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35821922/