javascript检测文本区域中键入的字符串

javascript检测文本区域中键入的字符串,javascript,textarea,codemirror,ace-editor,Javascript,Textarea,Codemirror,Ace Editor,javascript中是否有方法检测文本区域中是否键入了单词/字符串?我想检测在Ace编辑器或CodeMirror中输入的字符串,然后执行其他操作。听起来它已经实现了,但我不知道如何实现。在Javascript中,可以绑定到DOM对象上的键up/down/press/etc事件。您必须在HTML中设置适当的属性 <textarea onkeyup='checkText(this.value);'></textarea> 这是使用textarea的值(text)调用J

javascript中是否有方法检测文本区域中是否键入了单词/字符串?我想检测在Ace编辑器或CodeMirror中输入的字符串
,然后执行其他操作。听起来它已经实现了,但我不知道如何实现。

在Javascript中,可以绑定到DOM对象上的键up/down/press/etc事件。您必须在HTML中设置适当的属性

<textarea onkeyup='checkText(this.value);'></textarea>

这是使用textarea的值(text)调用Javascript函数的关键行

下面是一个完整的示例来演示这种用法。由于在调用函数之前,新字符将出现在文本值中,因此最好在键向上时侦听

<html>
<head>
<script type='text/javascript' >
var oldText = '';

function checkText(text)
{
    if(text.length >= 1)
    {
        if(text == '<svg>' && text != oldText)
        {
            alert("<svg> found");
        }
    }
    oldText = text;
}
</script>

<body>

<textarea onkeyup='checkText(this.value);'></textarea>

</body>
</html>

var oldText='';
函数检查文本(文本)
{
如果(text.length>=1)
{
if(text=''&&text!=旧文本)
{
警惕(“发现”);
}
}
oldText=文本;
}

您可以使用onchange事件将键入的内容与预期内容进行比较

<html>
<script>

function checktext(){
var val = document.getElementById("textbox").value;
  // val is what is in the textbox
  // compare val here
  // for example
  if (val == "<svg>"){
    alert(val);
  }
}
</script>
<body>

<textarea id="textbox" onchange="checktext()"></textarea>
</body>

</html>

函数checktext(){
var val=document.getElementById(“textbox”).value;
//val是文本框中的内容
//在这里比较一下val
//比如说
如果(val==“”){
警报(val);
}
}

我知道这与其他人的答案有些相似,但它提供了一种替代方法:

document.getElementById('textArea').onkeypress = function() {
    if(/\<svg\>/i.test(document.getElementById('textArea').value) === true) {
        // do whatever you want here
    }
}
document.getElementById('textArea')。onkeypress=function(){
if(/\/i.test(document.getElementById('textArea').value)==true){
//在这里你想干什么就干什么
}
}
如果您不熟悉JS中的正则表达式,那么它们是一种很好的方法来查找某些东西中的字符串,比如用户的输入,就像您想要的那样。创建后的
i
标志忽略大小写,以防万一您不知道。此外,如果没有
onload
事件或类似事件,那么将此脚本放在头部是不可行的——因为文档尚未完全加载,因此脚本没有任何内容可供搜索

希望这有帮助

在CodeMirror中,只要代码发生更改,就会触发
“更改”
事件。当触发此命令时,您只需扫描内容以查找感兴趣的字符串。或者,如果您希望看到一个巨大的文档,并且希望这是有效的,那么您只能扫描文档的更改部分(注意处理字符串位于更改部分和未更改部分边界上的情况)

cmInstance.on(“更改”,函数(cm){
if(cm.getValue().indexOf(“”>-1)
doSomething();
});

您不需要迭代文本或调用string.prototype.search()来查看文本?如果在文本区域中输入了其他文本,它就不起作用了?
cmInstance.on("change", function(cm) {
  if (cm.getValue().indexOf("<svg>") > -1)
    doSomething();
});