我正在使用ng-pattern来验证以下条件的字段。到目前为止,我只能使用以下正则表达式验证最后两个条件。当我只添加数字时,我也想验证长度。
如何验证ng-patter中的所有四个条件?我是否需要单独用括号括起来?
data-ng-pattern="/^[0-9-\s()+]+$/"
11111111
111111111
11-111-111
111-111-111
我想验证多个条件
答案 0 :(得分:1)
^([^0][0-9]){6}$
的问题是无效的正则表达式,因为0
和^[1-9][0-9]{5}$
是允许任何不是{{1}的字符接下来是六个数字。
使用
^
<强>解释强>
[1-9]
:以锚[0-9]{5}
:匹配1到9之间的一个数字0-9
:匹配范围$
input:invalid {
color: red;
}
:以锚点结束
Regex101游乐场
HTML5演示:
显示代码段
<input type="text" pattern="[1-9][0-9]{5}" />
{{1}}
运行代码片段隐藏结果
答案 1 :(得分:0)
试试这个。它只允许10位数。
/^[1-9]{1}[0-9]{9}$/
我不确定这会起作用,但我试过了。
/^[1-9]{1}[0-9-\s()+]{10}$/gm
Explainlation
1)^开始。如果启用了多行标记(m),则匹配字符串的开头或行的开头。
2)[字符集。匹配集合中的任何字符。 1-9范围。匹配范围“1”到“9”(字符代码49到57)中的字符。 ]
3){1}量词。匹配前一个标记的第1个。
4)[字符集。匹配集合中的任何字符。
5)0-9范围。匹配范围“0”到“9”(字符代码48到57)中的字符。
6) - 性格。匹配“ - ”字符(字符代码45)。
7)\ s空白。匹配任何空白字符(空格,制表符,换行符)。
8)(字符。匹配“(”字符(字符代码40)。
9))性格。匹配一个“)”字符(字符代码41)。
10)+角色。匹配“+”字符(字符代码43)。 ]
11){10}量词。匹配前面标记的10个。
12)$结束。匹配字符串的结尾,如果启用了多行标记(m),则匹配行的结尾。
13)g修饰符:全局。所有比赛(首场比赛时不返回)
14)m修饰符:多行。导致^和$匹配每行的开头/结尾(不仅是字符串的开头/结尾)