在两个$$标志之间书写时识别

时间:2012-03-10 20:20:58

标签: jquery mathjax

我有一个文字区域,我正在写一些文字。

为了简单起见,我希望每当我开始写两个$$之间时alert('Boom!')跳出来。

例如,我有一个空白的文本字段并开始输入(光标是“|”符号)

Today is a really nice day|

没有任何反应,开始输入

Today is a really nice day, $|$

仍然没有,但现在我开始输入

Today is a really nice day, $someText|$

警告框应跳出这些美元符号之间的每个字母。

为什么我需要这种功能?每次用户开始输入他/她的等式时,我都想要实时方程预览(MathJax渲染),我可以通过$$符号识别它是一个等式(中间的所有内容都被渲染)。

编辑:在文本字段中可以使用多个$$。脚本必须识别当前活动的那个(光标位置在它的$$之间)。

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery插入符号插件

http://examplet.buss.hk/download/download.php?plugin=caret.1.01

注意:从第8行编辑并删除这些字符Ôªø

replace功能。 (不要替换任何东西,只能使用匹配模式的索引)

$("#myText").bind("keyup", function(e){
     var text = $(this).val();
     var caret = $(this).caret().start;

     if(text && text.length > 0){
        text.replace(/\$.*?\$/g, function(m, n){
           if(caret > n && caret < (n + m.length)){
              alert("BOOM");
           }
        });
     }
});

演示:http://jsfiddle.net/xqXXb/

只是展示如何做到这一点。你可以改善这一点。

使用

$("#myText").bind("keyup keydown change", function(e){ ...

获得更好的结果。