2017-08-02 45 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

这部分和普通的正则表达式一样。非常感谢你的帮助! –