我需要在以下条件下显示有关手机号码的错误消息: a)它应包含10位数字。 b)它不应该以0或1开头。 c)所有10位数字不应相同。例如:"(222)-2222-222"
下面是html和js代码。
<label>Work Phone</label>
<input id="" type="text" ui-mask="(999) 999-9999" name="workPhone"
class="form-control"
tabindex="16"
ng-model="patientIn.addressList[0].phoneNumbers['work']"
ng-change="setPhoneNumber('work')"
ui-mask-placeholder-char="space"
model-view-value="true"/>
<p ng-show="(frmPatientEdit.$submitted && frmPatientEdit.workPhone.$invalid) || (frmPatientEdit.workPhone.$invalid && frmPatientEdit.workPhone.$touched)"
class="error">Work Phone is Invalid.</p>
JS代码:
$scope.setPhoneNumber = function (type) {
if (typeof $scope.patientIn.addressList[0].phoneNumbers[type] !== "undefined" && $scope.patientIn.addressList[0].phoneNumbers[type] !== "") {
var obj = $scope.patientIn.addressList[0].phoneNumbers.filter(function (item) {
return item.type === type;
});
var index = $scope.patientIn.addressList[0].phoneNumbers.indexOf(obj[0]);
if (index > -1) {
$scope.patientIn.addressList[0].phoneNumbers[index].number = $scope.patientIn.addressList[0].phoneNumbers[type];
} else {
//console.log('Adding number: ', $scope.patientIn.addressList[0].phoneNumbers[type], type);
$scope.patientIn.addressList[0].phoneNumbers.push({"type": type, "number": $scope.patientIn.addressList[0].phoneNumbers[type]});
}
}
};
答案 0 :(得分:1)
试试这个会起作用:
Html:
<ng-form name="myForm" ng-controller="mainCtrl">
<div>Phone No :</div>
<div>
<input type="text" placeholder="9101234567" name="phone" minlength="10" maxlength="10" ng-pattern="phoneNumbr" ng-model="phone"/>
<span class="error" ng-show="myForm.phone.$error.minlength">Phone no not less that 10 char.</span>
<span class="error" ng-show="myForm.phone.$error.maxlength">Phone no not more than 10 char.</span>
<br><span class="error" ng-show="myForm.phone.$error.pattern">Please match pattern [9101234567]</span>
</div>
</ng-form>
脚本:
var app = angular.module('myApp', []);
app.controller('mainCtrl', function($scope) {
$scope.phoneNumbr = /^([2-9])(?!\1+$)\d{9}$/;
});
此处,10
个数字1
中的第一个位置2-9
消耗,然后接下来的9个数字可以来自0-9
。
需求履行:
a)它应包含10位数字。 - 已实现
b)不应以0或1开头。已实现
c)所有10位数字不应相同。 - 已实现
工作小提琴: https://jsfiddle.net/rohitjindal/p0rcwon2/
感谢。
答案 1 :(得分:0)
一种方法是使用正则表达式和JavaScript的组合。
正则表达式将负责:
JavaScript代码将负责:
这是功能:
function validatePhone(p){
p = ''+p; //convert it to a string
var regex = /^[2-9]\d{9}$/;
return regex.test(Number(p)) && p.split('').reverse().join('') !== p
}