2017-08-02 46 views
2

我有兩個不同領域的正則表達式。兩者都會評估正確的值,但它們都不會阻止用戶進入空白區域。例如在性別字段中,用戶可以簡單地輸入空格並提交表單。我想阻止進入空格的用戶。這是我的正則表達式:HTML5中的模式正則表達式可以防止空白?

Gender pattern="*[MmFf]?*" #This field should allow M or F letter lower or upper case. Nothing else should be allowed. This field is 1 character only. 

Grade pattern=" *(0?[0-9]|1[0-2]|[A-Z]{1,2})? *" #This should allow 01 or 1 and something like this PK or pk. No white space. 

我不知道如何防止HTML5模式中的空白。如果有人知道如何解決這個問題,請讓我知道。謝謝。

+0

的可能的複製[如何防止在正則表達式的正則表達式的驗證白空間(https://stackoverflow.com/questions/2842823/how-to -prevent-white-spaces-in-a-regular-expression-regex-validation) – marcusshep

回答

1

您的圖案允許空格(*)或空字符串。使模式相匹配,至少東西:

  • 性別pattern="[MmFf]"
  • pattern="0?[0-9]|1[0-2]|[A-Za-z]{1,2}"

記住,HTML5模式不要求明確^$錨(除非一些不尋常的框架覆蓋HTML5 pattern行爲)。

因此,第一圖案將被轉換爲^(?:[MmFf])$圖案和將只匹配一個字符串,它等於MmFf

第二個將被翻譯成^(?:0?[0-9]|1[0-2]|[A-Za-z]{1,2})$和將匹配字符串(需要一個完整的字符串匹配)

  • 0?[0-9] - 任選0隨後以數字
  • | - 或
  • 1[0-2] - 101112
  • | - 或
  • [A-Za-z]{1,2} - 1或2個大寫或小寫字母ASCII
+0

如何在此組合中允許[AZ] {1,2} - 1或2個大寫ASCII字母小寫? –

+0

@espresso_coffee只需在字符類中添加「a-z」即可。 –

+0

這部分和普通的正則表達式一樣。非常感謝你的幫助! –