Angularjs 否定电子邮件字段中不需要的字符
我有一个半工作的AngularJS指令,它的作用是否定不需要的字符,比如字段上的特殊字符。这取决于该指令的属性。问题是它在电子邮件领域不起作用。我想知道为什么。。这是我的密码:Angularjs 否定电子邮件字段中不需要的字符,angularjs,Angularjs,我有一个半工作的AngularJS指令,它的作用是否定不需要的字符,比如字段上的特殊字符。这取决于该指令的属性。问题是它在电子邮件领域不起作用。我想知道为什么。。这是我的密码: <!DOCTYPE html> <html > <head> <link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.
<!DOCTYPE html>
<html >
<head>
<link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
</head>
<body ng-app="ngToggle">
<div>
<input type="text" ng-model="textModel" class="uncheck" negate-special-characters>
<input type="text" ng-model="textModel2" class="uncheck" negate-special-characters="address">
<input type="text" ng-model="textModel3" class="uncheck" negate-special-characters="name">
<input type="email" ng-model="textModel4" class="uncheck" negate-special-characters="e-mail">
</div>
<script type="text/javascript">
angular.module('ngToggle', [])
.directive('negateSpecialCharacters', function(){
return{
require: 'ngModel',
link: function(scope, element, attrs, ngModel){
attrs.$observe('ngModel', function(value){
scope.$watch(value, function(newValue){
try{
if(attrs.negateSpecialCharacters){
if(attrs.negateSpecialCharacters == "address"){
regex = /[^a-zA-Z0-9,. ]+/g;
}
else if(attrs.negateSpecialCharacters == "name"){
regex = /[^a-zA-Z- ]+/g;
}
else if(attrs.negateSpecialCharacters == "e-mail"){
regex = /[^a-zA-Z_0-9@. ]+/g;
}
}else{
regex = /[^a-zA-Z0-9 ]+/g;
}
clean = newValue.replace(regex, "");
ngModel.$setViewValue(clean);
ngModel.$render();
}catch(err){
// Just to catch all the regex errors upon page reload
console.log(err);
}
});
});
}
}
});
</script>
</body>
角度。模块('ngToggle',[])
.directive('negativeSpecialCharacters',function(){
返回{
要求:'ngModel',
链接:功能(范围、元素、属性、模型){
属性$observe('ngModel',函数(值){
范围$watch(值,函数)(newValue){
试一试{
if(属性否定特殊字符){
if(attrs.negativeSpecialCharacters==“地址”){
正则表达式=/[^a-zA-Z0-9,.]+/g;
}
else if(attrs.negativeSpecialCharacters==“name”){
正则表达式=/[^a-zA-Z-]+/g;
}
else if(attrs.negativeSpecialCharacters==“电子邮件”){
正则表达式=/[^a-zA-Z_0-9@.]+/g;
}
}否则{
正则表达式=/[^a-zA-Z0-9]+//g;
}
clean=newValue.replace(regex,“”);
ngModel.$setViewValue(干净);
ngModel.$render();
}捕捉(错误){
//只是为了在重新加载页面时捕获所有正则表达式错误
控制台日志(err);
}
});
});
}
}
});
以下是普朗克: