Я пытаюсь сделать несколько базовых c angular проверок формы.
<input type="text" class="form-control" id="bank-name" name="scode" ng-class="{ 'error' : (form.scode.$invalid && form.scode.$touched) }" maxlength="6" required numbers-only/>
<div ng-show="form.$submitted || form.scode.$touched">
<p class="error" ng-show="form.bankname.$error.required">
scode is required.
</p>
</div>
Пока это хорошо. Вход принимает только числа и имеет максимальная длина , поскольку я использовал для него одну директиву.
директива только для чисел
(function() {
angular.module('app').directive('numbersOnly', function() {
return {
require : 'ngModel',
link : function(scope, element, attrs, ngModelCtrl) {
function insertdash(val) {
var count = 2;
var i = 0;
if (val.length > 2) { return val.replace(/(\d{2})/g, function(match, capture) {
return (i++ < count) ? capture + '-' : capture;
}); }
}
function fromUser(text) {
if (text) {
var transformedInput = text.replace(/[^0-9]/g, '');
if (transformedInput !== text) {
ngModelCtrl.$setViewValue(transformedInput);
ngModelCtrl.$render();
}
return insertdash(transformedInput);
}
return undefined;
}
ngModelCtrl.$parsers.push(fromUser);
}
}
});
})();
**
Проблема При связывании мне нужно разделить числа при связывании вот так 11-11-11 . Я думаю, что мне нужно использовать регулярные выражения, о которых я почти ничего не знаю.
Редактировать: Я пытался использовать функцию insert da sh, но она также не работает