2013-06-25 22 views
2

開始,我有以下的正則表達式,我試圖只允許類似的數字:JavaScript的匹配數字不是零或零

1, 2, 3, 10, 11, 24 etc

和NOT 0, 01, etc

if (!$(this).text().match(/^[1-9][0-9]/g)) { 


} 

是這正確嗎?因爲它不允許像1,2,3等數字,但是是11,12等。

+1

你能不能只檢查的第一個字符是'0'?或者你需要允許'0.5'等? –

+0

會運行parseInt($(this).text(),10)解決你的問題? –

+0

@AndrzejDoyle不只是整數,所以檢查前導零將工作 – Cameron

回答

9

您需要在第二個[0-9]之後指定*以匹配零個或多個數字。除了一位數字之外,這也將無法匹配兩位數以上的數字。正確的正則表達式是^[1-9][0-9]*

+3

將$添加到最後,除非您不想匹配'10 somthing else'... – inf3rno

1

嘗試使用REPLACE()

if (!$(this).text().replace(/^(-?)0+/,'').match(/[1-9]?[0-9]*/)) 
相關問題