Javascript 创建AngularJS筛选器以删除正则表达式匹配项并替换为textarea中的屏蔽文本

Javascript 创建AngularJS筛选器以删除正则表达式匹配项并替换为textarea中的屏蔽文本,javascript,angularjs,angularjs-filter,Javascript,Angularjs,Angularjs Filter,我的目标是创建一个可以放置在文本区域或输入上的角度过滤器,这样当用户键入与预定义正则表达式匹配的文本时,该文本将被识别并替换为该文本的屏蔽形式 这是否可能使用过滤器?或者我应该以不同的方式来处理它?我会提供我已经开始的东西,但它太遥远了,我不确定它是否会有帮助。即使是一个坚实的起点和确认我正确地(或不正确地)实现了这一点,也会有所帮助 看起来指令是最简单的方法,因为ng模型绑定中不能包含过滤器 基于此,从第二个答案开始,我得到了我想要的工作方式 angular.module("app").dir

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


这是否可能使用过滤器?或者我应该以不同的方式来处理它?我会提供我已经开始的东西,但它太遥远了,我不确定它是否会有帮助。即使是一个坚实的起点和确认我正确地(或不正确地)实现了这一点,也会有所帮助

看起来指令是最简单的方法,因为ng模型绑定中不能包含过滤器

基于此,从第二个答案开始,我得到了我想要的工作方式

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>
angular.module(“app”).directive('customValidation',function(){
返回{
要求:'ngModel',
链接:函数(作用域、元素、属性、modelCtrl:ng.INgModelController){
modelCtrl.$parsers.push(函数(inputValue){
var transformedInput=inputValue.replace(/microsoft/i,“w3s”);
if(transformedInput!=输入值){
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
返回转换输入;
});
}
};
});

添加一些代码,您现在尝试了什么?将其作为筛选器编写没有问题。如果需要,可以使用
$filter
服务在指令中使用该过滤器来更新ngModel。因此,无论最终如何实现,它都将是多功能的。或者写在服务中。无论你做什么,如果需要,你都可以很容易地四处走动