2013-05-27 43 views
2

我想要一個正則表達式允許1-3位數的整數,它不應該以0開頭,應該是一個整數,而不是小數或分數或任何有符號的值,正則表達式允許值1到100在某些條件下

這就是我試圖

"/^(\s*|\d{1,3})$/" 

,但它似乎並沒有工作..提前

感謝

+1

類似的http://stackoverflow.com/questions/3071162/regex-to-match-0-999-but-not-blank – PiLHA

+1

刪除封閉的斜線。它們僅用於JavaScript。 –

回答

5

你可以這樣說:

^(([1-9]\d?)|100)$ 

這將確保

  • 至少有一個數字
  • 那多位數比零
  • ,唯一允許三位數字是100以外的其他數字開頭。
+1

您需要對變更進行分組,這樣錨就屬於替代方案==>'^ [1-9] \ d?'或'100 $',[regexr](http://regexr.com?350p9) – stema

+0

@Nolonar你是對的,缺少一對括號。謝謝! – dasblinkenlight

+0

原來的問題是任何一到三位數字,而不是三位數字的100。 – unxnut

0
^[1-9][0-9]\{,2\}$ 

應該確實行尾;詞的結尾將得到小數部分。

+0

應該用''''和'}'來代替''{'和'\]'。你爲什麼想要逃脫它們? – Talus

+0

這允許1到199之間的任何數字,而不是1和100. –

+0

@Eric Lippert:它允許1到999之間的任何數字。我已經閱讀了說明1-3位數字的整數。在投票前你應該清楚你的事實。 – unxnut