2016-05-23 98 views
1

我需要在Javascript(而不是JQUERY)中創建正則表達式。Javascript正則表達式僅匹配數字1到11

正則表達式只能匹配從1到11的數字。

我開始用這個正則表達式來允許數字1到11,但它也允許21,31,41,51等,我只需要數字1到11.謝謝。

var range = /([0-9][0-1]{1,2})/g; 

說明:我需要使用正則表達式進行表單驗證。我使用HTML屬性「min/max」,但我工作的平臺仍然提交表單,所以我需要在提交到服務器之前在客戶端捕獲它。

+0

嘗試'^(1 [01] | [1-9])$'。 – ClasG

+4

爲什麼要使用正則表達式? – j08691

+1

有句古話,開發者有問題,他雖然會用正則表達式解決。現在他有兩個問題 –

回答

3

這裏的正則表達式,假設文本只能包含這個號碼,而不是其他:/^([1-9]|1[01])$/

你可以用這個here玩。

說明:

  • /^...$/確保它從開始到比賽結束。所以12不會僅僅因爲起始1而匹配。
  • 替代(...|...)允許兩種數字:
    • [1-9]允許一個1位數字至9
    • 1[01]允許從1開始兩位數字,然後是0或1。
+2

儘管你完全不能刪除錨點。這將匹配任何數字,如「111」。你至少需要檢查字邊界 - '/ \ b([1-9] | 1 [01])\ b /'。 – ClasG

1

我完全過分複雜化了這一點。我所需要做的就是檢查它是否是一個整數,如果不是,則拋出錯誤,然後檢查int是否爲int。 int> 11.

謝謝你的所有建議。