创建一个 AngularJS 过滤器以删除正则表达式匹配项并替换为 textarea 中的屏蔽文本

Create an AngularJS filter to remove regular expression matches and replace with masked text in textarea

我的目标是创建一个 angular 过滤器,它可以放置在文本区域或输入框上,这样当用户键入与预定义正则表达式匹配的文本时,该文本将被识别并替换为屏蔽的该文本的形式。

这可以使用过滤器吗?或者我应该以不同的方式接近它吗?我会提供我已经开始的,但它太远了,我不确定它是否有帮助。即使是一个坚实的起点并确认我正在正确(或不正确)处理这个问题,也会有所帮助。

看起来指令是执行此操作的最简单方法,因为过滤器不能包含在 ng-model 绑定中。

基于此,重要帮助(这可能被标记为重复问题)this page, 我让它按照我想要的方式工作。

angular.module("app").directive('customValidation', function () {
        return {
            require: 'ngModel',
            link: function (scope, element, attrs, modelCtrl: ng.INgModelController) {

                modelCtrl.$parsers.push(function (inputValue) {

                    var transformedInput = inputValue.replace(/microsoft/i, "W3Schools");


                    if (transformedInput != inputValue) {
                        modelCtrl.$setViewValue(transformedInput);
                        modelCtrl.$render();
                    }

                    return transformedInput;
                });
            }
        };
    });

<textarea ng-model="vm.text" ng-trim="false" custom-validation></textarea>