我正在使用指令,仅允许在我的字段中使用字母数字字符。我发现此指令可以做到这一点:

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

09-16 20:22