【发布时间】:2015-12-22 02:09:27
【问题描述】:
我正在创建一个directive 来限制输入框只接受数字。它应该接受 1-9999999999,但没有前导 0。它正在工作,但在输入第一个数字后,它接受所有数字和字符。请帮我解决这个问题。它应该接受 10,而不是 01。为此,我的代码是,
HTML:
<input type="text" ng-model="number" required="required" numbers-only="numbers-only" />
JS:
angular.module('myApp', []).directive('numbersOnly', function(){
return {
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function (inputValue) {
if (inputValue == undefined) return ''
var transformedInput = inputValue.replace(/^[^1-9]*/g, '');
if (transformedInput!=inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
});
}
};
});
function MyCtrl($scope) {
$scope.number = ''
}
小提琴:FIDDLE
【问题讨论】:
标签: javascript jquery html angularjs regex