本文介绍了限于只写在角A-Z的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想让用户只写英文字母不是数字或任何语言。
这里是我的小提琴:,但它不工作。
I want to let user to write just english character not number or any languages .here is my fiddle : Demo but it's not working .
app.directive('validcharEn', function () {
return {
require: '?ngModel',
link: function (scope, element, attrs, ngModelCtrl) {
if (!ngModelCtrl) {
return;
}
ngModelCtrl.$parsers.push(function (val) {
if (angular.isUndefined(val)) {
var val = '';
}
var clean = val.replace(/[^a-z]/g, '');
var decimalCheck = clean.split('.');
if (!angular.isUndefined(decimalCheck[1])) {
decimalCheck[1] = decimalCheck[1].slice(0, 2);
clean = decimalCheck[0] + '.' + decimalCheck[1];
}
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
});
element.bind('keypress', function (event) {
if (event.keyCode === 10) {
event.preventDefault();
}
});
}
};
});
我这么想吗?
推荐答案
这个怎么样: ,清洁,做到这一点最简单的方法。
How about this : Fiddle , clean and simplest way to do it .
app.directive('validEn', function() {
return {
require: '?ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
if(!ngModelCtrl) {
return;
}
ngModelCtrl.$parsers.push(function(val) {
var clean = val.replace( /[^a-z]+/g, '');
if (val !== clean) {
ngModelCtrl.$setViewValue(clean);
ngModelCtrl.$render();
}
return clean;
});
element.bind('keypress', function(event) {
if(event.keyCode === 32) {
event.preventDefault();
}
});
}
};
});
HTML
<input type="text" ng-model="employee.age" valid-en />
更新结果
或者电子邮件输入:
Update
or maybe for email input :
Fiddle
var clean = val.replace( /[^0-9+.+a-z+@]+/g, '');
希望这有助于
这篇关于限于只写在角A-Z的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!