我正在使用指令,仅允许在我的字段中使用字母数字字符。我发现此指令可以做到这一点:
app.directive('onlyAlphabets', function() {
return {
require: 'ngModel',
link: function(scope, element, attr, ngModelCtrl) {
function fromUser(text) {
var transformedInput = text.replace(/[^0-9a-zA-Z\s]/g, '');
console.log(transformedInput);
if (transformedInput !== text) {
ngModelCtrl.$setViewValue(transformedInput);
ngModelCtrl.$render();
}
return transformedInput; // or return Number(transformedInput)
}
ngModelCtrl.$parsers.push(fromUser);
}
};
});
这很好。现在,我也想允许破折号。我怎样才能做到这一点?
最佳答案
将您的正则表达式更改为
text.replace(/[^0-9a-zA-Z\-\s]/g, '');
Example