如何检查用户的文本光标是否在两个字符串之间?

时间:2014-06-24 21:29:17

标签: javascript jquery regex textarea

我想检查并查看用户(闪烁)光标位置是否在textarea中的两个字符串之间。

enter image description here

处理标签事件是它自己的事情,我只想知道处理与标签相关的光标位置的方法。

1 个答案:

答案 0 :(得分:0)

要查找内部标记匹配,您可以将文本左右分割,然后在正确的一半中查找正确的打开/关闭标记。 从那里,使用相同的一半更换标签很简单:

<textarea>blah <code> this is the code </code> and this is not.</textarea>
<script>

function handleKeys(e) {
     var t,n,s,r, pad="    ";

    if (e.shiftKey && e.keyCode == 32) {
            t = this.value,
        n = this.selectionStart,
        s = this.scrollTop,
        r = [t.slice(0, n), t.slice(n)];

        this.value = r.join(pad);
        this.selectionStart = this.selectionEnd = n + pad.length;
        this.scrollTop = s;

        e.preventDefault();
    }
}  



</script>

按代码标签内的选项卡将插入制表符。你还应该考虑为只使用键盘来逃脱制表符陷阱的人提供一些方法,可能是转义键等等。

编辑:我添加了滚动简历以修复某些浏览器中的错误,这些浏览器在插入时将textarea滚动到顶部。由于这是一个可以激发很多事件的事件,我还优化了功能,完全忽略了不相关的按键(而不是每次按键完成一些工作)。