2015-06-15 43 views
1

我想知道是否有一种简单的方法可以在表单文本字段上设置此验证,而无需创建自定义指示。验证A-Z0-9的最大长度为10,但允许用户输入空格(但最多跳过空格)

我需要验证{minlength: 2, maxlength: 10},用户可以输入[A-Z0-9\s]的任意组合,但只有数量A-Z0-9将趋向最小和最大计数。

这可能吗?

我在想也许使用ng-pattern和一些神奇的正则表达式可能会把它关闭。只需要一个错误消息触发,如果ng-pattern未能通过匹配。

回答

2

正则表达式^\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支持)。

+0

模式实际上需要锚定吗?我认为这是隐含的。 – Bergi

+0

@Bergi,刚才的一个快速测试显示是的,他们这样做。 – DocMax

+0

真棒,谢谢!你对于正则表达式非常好,你是如何学习的?似乎没有领先的'\ s *'也可以工作(也许是因为角自动修剪空格)。有什么方法可以改变这个以允许任何字符,包括标点符号和空格,但只计算字母和数字? – ngDeveloper

相关问题