HTML5中的模式正则表达式会阻止空格?

时间:2017-08-02 13:11:19

标签: regex html5 validation

我有两个不同领域的正则表达式。两者都将评估正确的值,但它们都不会阻止用户输入空格。例如,在性别字段中,用户只需输入空格并提交表单即可。我想阻止用户输入空白区域。这是我的正则表达式:

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模式中的空格。如果有人知道如何解决这个问题,请告诉我。感谢。

1 个答案:

答案 0 :(得分:1)

您的模式允许空格( *)或空字符串。使模式至少匹配:

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

请注意,HTML5模式不需要显式的^$锚点(除非一些不寻常的框架会覆盖HTML5 pattern行为)。

因此,第一个模式将转换为^(?:[MmFf])$模式,并且只匹配等于MmF或{{1}的字符串}。

第二个将被翻译为f并将匹配一个字符串(需要完整的字符串匹配)

  • ^(?:0?[0-9]|1[0-2]|[A-Za-z]{1,2})$ - 可选0?[0-9]后跟数字
  • 0 - 或
  • | - 1[0-2]1011
  • 12 - 或
  • | - 1或2个大写或小写ASCII字母