如何使用 JS 或 jQuery 确定用户输入的内容是否是新单词?
我想做的事:
我正在编写一个具有针对不同类型的自动完成功能的文档工具。如果您输入 f.e. @
它将填充框中的 Java 类,#
将填充测试类等。现在,如果用户正在编写类似的内容,我不想填充这些值类似于 yourname@domain.com
的电子邮件。因此,我只需要在单词开头时填充这些值。
我知道 keydown、keyup 事件等。我只是不知道如何正确检查这种特定类型的事件。
一种方法是将每个键入的字母保存在变量中,然后检查前一个“字母”是否是空格,如果是,我们就知道这是一个新单词。这是最好/最有效的方法吗?
最佳答案
一种方法是使用 selectionStart
检查输入框中 @
之前的内容:
onload = function() {
var io = document.getElementById("io");
io.onkeypress = function(e) {
if(e.charCode == 64 && (
io.selectionStart == 0 || io.value[io.selectionStart-1].match(/\s/)))
document.getElementById("ac").innerHTML = "autocomplete!";
else
document.getElementById("ac").innerHTML = "";
}
}
<input id="io">
<div id="ac"></div>
关于javascript - JS如何判断用户是否开始新单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31718990/