2013-02-05 58 views
-5

我想要一個Reg表達式來接受[1-48]範圍內的值。Reg表達式接受1到48之間的值嗎?

+6

我想要十億美元 – BigMike

+4

正則表達式用於匹配模式,而不是比較數值。 – StarPinkER

+1

@ RP89,既然你在SO問的問題,你也可以習慣它的規則和規定,有些默認的,有些是明確的。你必須提出一個很好的問題,以你到現在爲止所嘗試的方式爲後盾,以及你想達到的目標。提問像'我想這樣做'最多可以畫出一連串的降薪,但不是一個好的答案,甚至可能會刪除或鎖定您的問題。你是新手,儘量習慣它.. – SexyBeast

回答

4

你可以試試這個正則表達式:^0*(?:[1-9]|[1-3][0-9]|4[0-8])$

不過,我會用另一種機制爲數字驗證如果可能的話建議。正則表達式旨在匹配字符串模式,正如註釋中已經指出的那樣。

這裏的正則表達式的一部分的說明通過部分:

  • ^:串
  • 開頭
  • 0*:匹配任何前導0
  • (?::分組的OR(非捕獲組)
    • [1-9]:比賽1至9
  • |:OR
    • [1-3][0-9]:匹配10到39
  • |:OR
    • 4[0-8]:匹配40到48
  • ):完分組的OR
  • $ :字符串結尾

看到它的工作this RegExr

你可能會發現有用的輔助設計方法 - 一些資源/測試自己他們的未來:

0

我不明白你爲什麼使用regEx。您可以直接說

if(x >= 1 && x <=48) { 
    // x will fall in range[1-48] inclusive 
}