Ich versuche, eine Direktive zu schreiben, die das NG-Modell von zwei Feldern, wie Handy-Code und Handynummer, übergibt.Regex Basierend auf den Bedingungen
Wo ich die ngmodels concating bin und wo ich ein REGEX verwende.
Die Bedingungen sind wie, Wenn der mobile Code ist 015x- die Gesamtzahl der mobilen Ziffern 12 streng
Wenn der mobile Code 01xx oder 01xxx ist sein sollte - dann ist die Gesamtzahl der Stellen wird 11 sein oder 12.
der Code ist:
angular.module('Validation').directive('mobileNumberValidator', function() {
var MOBILE_NUMBER_REGX = /^(?:(?=015)[0-9]{12} | [0-9]{11,12})$/;
return {
restrict: 'A',
require: 'ngModel',
scope: {
mobilecode: '='
},
link: function (scope, element, attrs, ngModel) {
dovalidation();
element.bind('blur', function() {
scope.$apply(dovalidation);
});
function dovalidation() {
ngModel.$validators.InvalidMobileNumber = function (modelValue, viewValue) {
var value = modelValue || viewValue;
var regexp = scope.mobilecode + value;
if (regexp.length !== 0) {
return MOBILE_NUMBER_REGX.test(regexp);
}
};
}
}
};
});
Aber die RegEx nicht wie erwartet funktionieren. :(
Was bedeutet die Notation [0-46-9] bedeuten? Ist das ein Intervall? – Khushi
Ah danke es hat funktioniert !!! – Khushi
@Alamelu '[0-46-9]' bedeutet, passen Sie __ ein Zeichen__ an, das entweder im Bereich von __0 bis 4__ oder im Bereich von __6 bis 9__ liegt. Aka eine beliebige Nummer aber 5. – Olian04