我有两个不同领域的正则表达式。两者都将评估正确的值,但它们都不会阻止用户输入空格。例如,在性别字段中,用户只需输入空格并提交表单即可。我想阻止用户输入空白区域。这是我的正则表达式:
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 :(得分:1)
您的模式允许空格( *
)或空字符串。使模式至少匹配:
pattern="[MmFf]"
pattern="0?[0-9]|1[0-2]|[A-Za-z]{1,2}"
请注意,HTML5模式不需要显式的^
和$
锚点(除非一些不寻常的框架会覆盖HTML5 pattern
行为)。
因此,第一个模式将转换为^(?:[MmFf])$
模式,并且只匹配等于M
,m
,F
或{{1}的字符串}。
第二个将被翻译为f
并将匹配一个字符串(需要完整的字符串匹配)
^(?:0?[0-9]|1[0-2]|[A-Za-z]{1,2})$
- 可选0?[0-9]
后跟数字0
- 或|
- 1[0-2]
,10
或11
12
- 或|
- 1或2个大写或小写ASCII字母