我知道 SO 不是一个代码生成器,但我打破了我的脑袋,我会对这个 RegExp 感到生气。
我<input />
在 HTML 中输入了文本<form />
。当用户双击特定列表中的元素时,输入会自动填充。此事件将生成类似or的
字符串,并将其放置在我的字段中的光标位置。
这个过程的第一个目标是构建一个数学公式结构。我的意思是,括号之间生成的字符串将插入元素,然后我想让用户只输入数字和运算符。"[text:number]"
"[text:number:text]"
<input />
我尝试绑定keydown
事件,并使用String.fromCharCode(e.which);
键“+”或“-”(和其他运算符)测试字符,但此函数返回字母字符。没有成功。
然后,我终于决定使用keyup
事件,然后使用 RegExp 替换<input />
值。
$("#inputID").keyup(function(){
var formule = $(this).val();
var valid_formule = formule.replace(CRAZY_REGEXP,'');
$(this).val(valid_formule);
});
所以,我的问题如下:
如何构造一个 javascript RegExp,以删除所有不在括号之间的字符,以及与 and 不同的()+-*/,.
字符numbers
。
一个例子:
"a[dse:1]a+a[dse:5]a+a[cat:5:sum]a+(a10a/5,5)!"
将成为
"[dse:1]+[dse:5]-[cat:5:sum]+(10/5,5)"
如果您有一些想法,我愿意以另一种方式实现我的目标。谢谢 !