我正在使用 AngularJS 指令进行表单输入验证。有没有一种方法可以使我的正则表达式仅允许一个特殊字符(:)以及数字和字母。这是我在 stackoverflow 上找到的指令。
myapp.directive('noSpecialChar', function() {
return {
require: 'ngModel',
restrict: 'A',
link: function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function(inputValue) {
if (inputValue == null)
return ''
cleanInputValue = inputValue.replace(/[^\w\s]/gi, '');
cleanInputValue = cleanInputValue.toUpperCase();
if (cleanInputValue != inputValue) {
modelCtrl.$setViewValue(cleanInputValue);
modelCtrl.$render();
}
return cleanInputValue;
});
}
}
});
我尝试在末尾添加冒号,但无法达到我的解决方案。
最佳答案
根据您当前的代码,您希望替换除字母、数字或空白字符之外的所有内容。
也就是说,正则表达式 [^\w\s:]
应该可以工作。
\w
= a-z、A-Z、0-9
\s
= 空白字符\r\n\t\f\v
我什至会考虑删除 \s
,因为它会在您的输入中留出空格,除非这是您的意图。
关于angularjs - 正则表达式允许特殊字符(:) and numbers and alphabets only,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40872563/