我正在尝试构建一种智能感知文本输入框,其中当用户键入时,“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');
}
关于javascript - 使用 Javascript 替换文本框中的文本(更改大小写),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1912334/