检测一旦某个单词刚刚被输入到文本区域
Detect Once a Certain Word Has Just Been Entered in a Textarea
考虑到EditArea和CodeMirror的自动完成功能,我想知道是否像Dreamweaver一样,有一种方法可以检测您输入的最后一个单词是否在某个列表中,然后提供相同类型的建议框,但带有函数的参数。我想你会在整个字段上使用正则表达式,或者可能拆分()整个字段(或当前行),然后使用数组的长度属性来查找文本的最后一位,然后做一些涉及类似索引操作的事情;然而,这似乎会变得有点资源密集。看起来好像我已经回答了自己的问题,但它总是有助于充分解释一个人的困惑,尤其是在公开场合。肯定有比我的更好的办法。我很感谢任何意见。谢谢你。
将要匹配的单词列表放在对象中,将文本或选项显示为值。然后在上键或按下键时,您可以使用如下函数获得文本区域的最后一个单词:
function showLastWord(id){
var el = document.getElementById(id);
var lastWord = el.value.match(/'w+$/);
return lastWord? lastWord[0] : '';
}
然后检查单词是否在列表中,并适当地处理。
编辑
一个小例子是:
<textarea onkeyup="showHelp(this);"></textarea>
<script>
var getLastWord = (function() {
re = /'w+$/;
return function (s){
var lastWord = s.match(re);
return lastWord? lastWord[0] : '';
}
}());
var keyWords = {foo:'foo was typed',bar:'bar was typed'};
function showHelp(el) {
var lastWord = getLastWord(el.value);
// Check for matching own property of keyWords
if (keyWords.hasOwnProperty(lastWord)) {
// Do stuff
console.log(keyWords[lastWord]);
}
}
相关文章:
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- 使用模拟按键在输入框中自动输入文本
- 如何添加类,同时开始在文本字段中输入文本
- JQuery使用相同的功能自动完成各种输入文本
- 如何设置输入文本框jquery的值
- 输入文本框为空时的阻止按钮asp.网络表单
- 基于单选框更新页眉,选中并选择输入文本
- 将输入文本与某个选项的值相匹配并自动选择
- 如何在 JavaScript 中创建输入文本框
- 如何使用纯Javascript观看输入文本框
- 需要使用javascript获取输入文本,然后将其添加到句子中
- php&js-将电子邮件添加到输入文本中
- 动态启用/禁用来自控制器的输入文本
- .val()不返回输入文本
- 从确认框中预填充输入文本框
- 如何使用JavaScript解析输入文本中给定的数据
- 添加/删除/更改输入文本的部分值
- 根据输入文本按元素排序,AngularJS
- 如何将(a*b)两个输入文本值相乘,并在javascript中随文本变化动态显示
- 如何从Tr重复的输入文本中获取值