验证 A-Z0-9 的最大长度为 10,但允许用户输入空格(但最多跳过空格)
Validate A-Z0-9 has maxlength 10, but allow user to enter spaces (but skip spaces in maximum)
我想知道是否有一种简单的方法可以在表单文本字段上设置此验证,而无需创建自定义指令。
我需要验证 {minlength: 2, maxlength: 10}
,用户可以输入 [A-Z0-9\s]
的任意组合,但只有 A-Z0-9
的数量会进入最小和最大计数。
这可能吗?
我在想也许可以使用 ng-pattern 和一些神奇的正则表达式来解决这个问题。如果 ng-pattern 匹配失败,只需要一条错误消息即可触发。
正则表达式^\s*(?:[A-Z0-9]\s*){2,10}$
将给出您所要求的。它分解为:
^\s* - start with 0 or more white space characters
[A-Z0-9] - then one of A-Z or 0-9
\s* - then any number of additional
white space chars (including 0)
(?: ){2,10} - repeat all that 2-10 times
\s*$ - and allow trailing white space
编辑: 更新为使用非捕获组(我没有意识到 ngPattern
受支持)。
我想知道是否有一种简单的方法可以在表单文本字段上设置此验证,而无需创建自定义指令。
我需要验证 {minlength: 2, maxlength: 10}
,用户可以输入 [A-Z0-9\s]
的任意组合,但只有 A-Z0-9
的数量会进入最小和最大计数。
这可能吗?
我在想也许可以使用 ng-pattern 和一些神奇的正则表达式来解决这个问题。如果 ng-pattern 匹配失败,只需要一条错误消息即可触发。
正则表达式^\s*(?:[A-Z0-9]\s*){2,10}$
将给出您所要求的。它分解为:
^\s* - start with 0 or more white space characters
[A-Z0-9] - then one of A-Z or 0-9
\s* - then any number of additional
white space chars (including 0)
(?: ){2,10} - repeat all that 2-10 times
\s*$ - and allow trailing white space
编辑: 更新为使用非捕获组(我没有意识到 ngPattern
受支持)。