Javascript AngularJs中数字的正则表达式
我想在AngularJs中使用正则表达式来接受以下三条语句:Javascript AngularJs中数字的正则表达式,javascript,angularjs,regex,Javascript,Angularjs,Regex,我想在AngularJs中使用正则表达式来接受以下三条语句: 09344542525 -> 11 length integer that start with 09 02144532363 -> 11 length integer that start with 021 44532363 -> 8 length integer 这是我的HTML: <div class="container co-operate" ng-controller="cooperation
09344542525 -> 11 length integer that start with 09
02144532363 -> 11 length integer that start with 021
44532363 -> 8 length integer
这是我的HTML:
<div class="container co-operate" ng-controller="cooperationController">
<form novalidate name="cooperationForm" class="signinform">
<div class="form-group inner-addon right-inner-addon">
<label class="form-label control-label"></label>
<input ng-model="restaurantInformation.tel" type="text" name="tel" id="tel" placeholder="phone number"
ng-pattern="mobRegEx || prePhoneRegEx || phoneRegEx" class="form-control default-input singleline-input" required />
<span class="form-icon icon icon-avatar"></span>
</div>
<p ng-show="cooperationForm.tel.$error.pattern" style="color: red">Wrong number format</p>
</form>
</div>
实际上,当我的输入是脏的并且我测试整数时,错误段落总是显示错误
有任何修改正则表达式的建议吗?您试图在
ng模式中使用多个正则表达式,方法是使用管道将它们分开,这是无效的。正如回答中所建议的,您应该实现一个自定义指令(ng phone number
?)或将多个表达式组合成一个模式
使用指令可能是最容易维护的方法。三者结合起来:
/^(?:0(?:21|9[0-9]))?[0-9]{8}$/
说明
^
匹配字符串的开头
(?:
。)?
是可选的组匹配
0(?:21 | 9[0-9])
literal021
或李>
09
和另一个数字
[0-9]{8}
8位以上
$
也匹配字符串的结尾
请注意,我添加了避免匹配子字符串
var regExp=/(+09 | 021 | 44532363)\d{1,12}/g;
var result=string.match(regExp);
console.log(结果)
我已经完成了我的问题。我的答案仍然有效;实现一个自定义指令,根据任何正则表达式模式测试输入。
/^(?:0(?:21|9[0-9]))?[0-9]{8}$/