我想在文本输入字段中输入一个句子。然后我输入一个特定的字符,例如“@”,如下所示:
I am writing this example with @ symbol.
使用keypress
,当使用符号时,我想检查它之前和之后的字符。
在这种情况下,它会给出两个空格。
另一个例子是:
This is another example using @text.
这里它应该为符号“之后”提供一个“之前”和“t”的空格。
当满足按键条件时,如何检测这些字符?
任何建议都将不胜感激。
答案 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 :)"/>