我正在尝试使用Angular JS在Visualforce页面上实现手机号码验证,但是我在解决如何编写正则表达式方面遇到了问题。
给我的要求非常简单:
这个数字应该是10位数(我已经在字段上设置了maxlength属性,所以这个已经处理好了) 它应该从04开始(因为它是澳大利亚手机) 只允许使用数字。
我正在使用的正则表达式(在我的电话号码输入字段的ng-pattern属性中)是:
^ /(04)[0-9] {10} / $
这可以解决问题 - 除了数字之外它不允许任何其他内容,让我输入从04开始的10位数字。但是它也允许我输入以02,03等开头的数字。 ..
我可能很简单,但我已经看过很多网站,包括这个网站,但找不到答案。
任何帮助都会非常感激,因为这个问题已经给我带来了一些白发。
答案 0 :(得分:1)
尝试使用此模式
在你的HTML文件中使用它:
<input type="text" (keypress)="keyPress($event)" minlength=10 maxlength=10>
在你的JS文件中使用它:
keyPress(event: any) {
const pattern = /[0-9\+\-\ ]/;
let inputChar = String.fromCharCode(event.charCode);
if (event.keyCode != 8 && !pattern.test(inputChar)) {
event.preventDefault();
}
}
答案 1 :(得分:0)
试试这个:
手机号码:
//inside view:
<input type="text" class="form-control" ng-model="mobileNo" name="mobileNo" ng-pattern="regEx" />
//inside controller:
$scope.regEx="/^[0-9]{10,10}$/";