2016-08-05 73 views
4

我正在使用正則表達式來驗證angularjs中的數字。但是我的代碼在數字超過9位時顯示驗證錯誤。請有人幫我糾正我的代碼,以便輸入任何數字的數字。正則表達式驗證錯誤

我曾嘗試是:

ng-pattern="/^\d{0,9}?$/" 
+0

'\ d {0,9}?'爲什麼在這裏使用'?' – Tushar

+0

@Tushar因爲[this](http://stackoverflow.com/a/38790314/256196)? – Bohemian

回答

3

只需卸下{0,9}?和使用*代替像

/^\d*$/ 

{0,9}的意思是任何長度9

+0

你能告訴我,如果我需要驗證小數點,我應該添加什麼。我之前嘗試的是ng-pattern =「/^\ d {0,9}(\。\ d {1,9})?$ /」 – anju

+1

@anju Here:「/^[\ d] * [\ 。]?[\ d] * $ /「 – scokmen

+0

謝謝你的幫助@scokmen – anju

2

介於0和只要改變{0,9}量詞與*。並取出? - 這是沒用的:

ng-pattern="/^\d*$/" 

對於十進制值:

ng-pattern="/^\d*(\.\d+)?$/" 
+0

你能告訴我,如果我需要驗證小數點,我應該添加什麼。我之前嘗試的是ng-pattern =「/^\ d {0,9}(\。\ d {1,9})?$ /「 – anju

+1

我相信在你的情況下開放的量詞很好:'$ \ d *(\。\ d +)?$'這些結果是一個簡單的正則表達式。 –

+0

謝謝你的幫助 – anju

1

用途:

"/^\d*?$/" 

\d{0,9} =匹配0到9的數字

\d* =匹配0至N位數

\ d =位數:0或1或2或3或4或5或6或7或8或9

+0

你能告訴我應該怎麼做我添加,如果我還需要驗證小數點。我以前嘗試過像ng-pattern =「/^\ d {0,9}(\。\ d {1,9})?$ /」 – anju

+0

您不當使用'*'量詞時需要'?' – Tushar

3

我懷疑問題是瞭解的區別:

  • {0,9}
  • [0-9]

{0,9}意味着,在這種情況下表示「0到9的數字」,「前面的術語的零至9重複」。

[0-9]的意思是「0到9(含)範圍內的字符」,與\d相同。

嘗試:

/^\d+$/ 

這意味着 「所有的數字輸入」 和排除空白輸入。

要允許十進制輸入也難逃點,使小數部分可選:

/^\d+(\.\d+)?$/ 

這意味着「至少一個數字,然後任選一個點和至少一個數字」。

+0

謝謝你的幫助。如果我還需要驗證小數點,我應該加什麼東西。 \。\ d {1,9})?$ /「 – anju

+0

@anju是否允許空白輸入? – Bohemian

+0

不允許@波希米亞語 – anju