2012-07-04 46 views
0

我有一個正則表達式來驗證輸入值。正則表達式 - 值不等於0,00

在這一點上,我有:

([0-9]{0,3}[.]?)*[0-9]{1,3},[0-9]*|[0-9] 

它的工作,但現在我需要添加一個驗證,看是否值不是0,00

的輸入量的值。 可能的值:

12,31 
1.234,56 
1.234.567,89 

不可能值:

0,00 

我需要這在使用的dijit.form.ValidationTextBox。 喜歡的東西:

dijit.byId(nameID).regExp = "([0-9]{0,3}[.]?)*[0-9]{1,3},[0-9]*|[0-9]"; 
+5

怎麼樣'如果(值!= 「0,00」){...}'? –

+0

從我知道我需要使用dijit.byId(填充NameID).regExp並且只接受常規expresions – jaapaurelio

回答

1

我認爲你必須完全重新思考你regurlar表達,因爲它真正的睾丸像琴絃「1.23.4,56」和「0」,但我不認爲這是你想。

嘗試是這樣的:

(?:(?:[1-9]\d{0,2})(?:\.\d{3})*(?:,\d{2})|0,(?:[1-9]\d|0[1-9])) 

RegExr測試你的正則表達式,但請記住,JavaScript不支持所有的最完整的正則表達式引擎的功能。事實上,它很差。

一些更多的注意事項:

  1. 不要使用令牌[.]匹配點。這很慢。只是越過了小數點:\.
  2. 您可以使用\d而不是[0-9],也可以在方括號中使用它:[a-f\d\-]適用於所有十六進制整數字符。
+0

幾乎沒有,但它沒有有效的爲類似11.111.111.111.111.110,00 – jaapaurelio

+0

爲什麼,是不是這個數字無效?測試這個數字將是真實的。 – MaxArt

+0

它不與dijit.byId(填充NameID).regExp工作的某些原因。我會將此標記爲正確答案,因爲它與http://gskinner.com/RegExr/一起工作。 – jaapaurelio