我正在尝试构建一种智能感知的文本输入框,其中随着用户键入,“and”被替换为“AND \ n”(即在每个“and”上,“and”都大写,并且用户到新行)。

我为此使用的Javascript是:


function Validate()
{
document.getElementById("search").value =  document.getElementById("search").value.replace("and","AND \n"); //new line for AND
}

The HTML part is like this:

< textarea type="text" name="q" id="search" spellcheck="false" onkeyup='Validate();'>< /textarea>

尽管以上脚本在Firefox和Chrome上运行良好,但在Internet Explorer上仍存在一些问题(将光标移至每个“KeyUp”上的文本末尾)。
同样,上面的代码不适用于'and'的其他变体,例如'And','anD'甚至是'AND'本身。

最佳答案

我认为这里的实际答案是前两个的混合:

onkeyup="this.value = this.value.replace(/\band\b/ig, ' AND\n')"

您需要i来使搜索不区分大小写,并且需要g来确保替换所有匹配项。这不是很有效,因为它将自己替换以前的比赛,但是会起作用。

使其成为一个单独的功能:
function validate() {
    document.getElementById('search') = document.getElementById('search').replace(/\band\b/ig, ' AND\n');
}

09-10 03:39
查看更多