我有两个不同领域的正则表达式。两者都会评估正确的值,但它们都不会阻止用户输入空格。例如,在性别字段中,用户可以简单地输入空格并提交表单。我想防止用户输入空白。这是我的正则表达式:
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 模式中出现空白。如果有人知道如何解决这个问题,请告诉我。谢谢。
最佳答案
您的模式允许空格 ( *
) 或空字符串。使模式至少匹配某些东西:
- 性别:
pattern="[MmFf]"
- 等级:
pattern="0?[0-9]|1[0-2]|[A-Za-z]{1,2}"
请注意,HTML5 模式不需要明确的 ^
和 $
anchor (除非一些不寻常的框架覆盖了 HTML5 pattern
行为)。
因此,第一个模式将被转换为 ^(?:[MmFf])$
模式并且只会匹配等于 M
的字符串,m
、F
或 f
。
第二个会被翻译成^(?:0?[0-9]|1[0-2]|[A-Za-z]{1,2})$
并将匹配一个字符串(需要完整的字符串匹配)
0?[0-9]
- 可选的0
后跟一个数字|
- 或者1[0-2]
-10
、11
或12
|
- 或者[A-Za-z]{1,2}
- 1 或 2 个大写或小写 ASCII 字母
关于regex - HTML5 中的模式正则表达式防止空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45461841/