我知道SO不是一個代碼生成器,但我打破了我的頭腦,而且我會因此RegExp而生氣。
我有<input />
鍵入文字,在HTML <form />
中。當用戶雙擊特定列表中的元素時,輸入會自動填充。
此事件將生成類似"[text:number]"
或"[text:number:text]"
的字符串,並將其放在我的<input />
字段中的光標位置。
該過程的第一個目標是構建一個數學公式結構。我的意思是,方括號之間生成的字符串將插入元素,然後我想讓用戶只能將號碼和運算符放入。
驗證基於用戶輸入的數學公式
我已經盡力了綁定事件,並與String.fromCharCode(e.which);
測試焦炭但對鍵「+」或「 - 」(和其他經營者)這個函數返回alphabeticals字符。沒有成功。
然後,我終於決定使用keyup
事件,然後使用RegExp替換<input />
值。
$("#inputID").keyup(function(){
var formule = $(this).val();
var valid_formule = formule.replace(CRAZY_REGEXP,'');
$(this).val(valid_formule);
});
所以,我的問題如下:
如何構建一個javascript正則表達式,以去除沒有括號,並且所有字符都是()+-*/,.
和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)"
我打開另一種方式來實現我的目標,如果你有一些想法。 謝謝!
如果你想檢查圓括號的平衡,正則表達式不會完成這項工作。你需要一個更復雜的解析器。 – 2012-07-06 09:34:56