2017-07-27 86 views
1

我想獲得一個RegEx工作0-100%,包括0,但不是作爲領先的數字。 示例有效輸入爲0,10,34,100,無效爲00,01,045,000或任何大於100的數字。JavaScript正則表達式(0-100),但不是領導0

我在這裏找到很多帶有1-100的例子但不是單一的0,並且我對RegEx的理解不夠,並沒有幫助我做出適當的調整。感謝幫助。

+2

你嘗試過什麼?向我們展示你的努力的一個例子。 – marcusshep

+0

呃,'str.indexOf(「0」)=== 0 && str.length> 1' – adeneo

+1

@adeneo這將在一堆無效輸入上返回true,以及OP爲此要求一個正則表達式。 –

回答

7

你可以使用這個表達式:

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

RegEx Demo

正則表達式破碎:

  • ^:啓動
  • (?::啓動非捕獲組
    • \d:從0比賽號碼9
    • |:或
    • [1-9]\d:比賽人數從1099
    • |:或
    • 100:比賽100
  • ):結束非捕獲組
  • $:結束
+0

爲什麼你將它作爲非捕獲組?似乎沒有必要。 –

+2

在正則表達式中使用捕獲組時,應該避免在正則表達式中使用不必要的捕獲組來保存內存並獲得正確的編號。 – anubhava

+0

@SpencerWieczorek - 一個團隊是必要的,以便錨將適用於每個變化。 – sln