在按键上检测字符

时间:2016-12-09 05:10:42

标签: javascript jquery keypress

我想在文本输入字段中输入一个句子。然后我输入一个特定的字符,例如“@”,如下所示:

I am writing this example with @ symbol.

使用keypress,当使用符号时,我想检查它之前和之后的字符。

在这种情况下,它会给出两个空格。

另一个例子是:

This is another example using @text.

这里它应该为符号“之后”提供一个“之前”和“t”的空格。

当满足按键条件时,如何检测这些字符?

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:2)

input event与输入元素上的selectionStart属性结合使用,可以获取光标的位置。

document.getElementById('example').addEventListener('input', function () {
    var text = this.value,
        cursor = this.selectionStart
    
    // the characters in question
    var previous = text.charAt(cursor - 2),
        current  = text.charAt(cursor - 1),
        next     = text.charAt(cursor)
    
    // do something cool
    console.log(previous, '|', current, '|', next)
})
<input type="text" id="example" value="edit this example text :)"/>