簡體   English   中英

創建一個AngularJS過濾器以刪除正則表達式匹配項並替換為textarea中的帶掩碼文本

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

我的目標是創建一個角度過濾器,該過濾器可以放置在文本區域或輸入上,以便當用戶鍵入與預定義正則表達式匹配的文本時,將識別該文本並將其替換為該文本的掩碼形式。

使用過濾器可以嗎? 還是我應該采取不同的方法? 我會提供我已經開始的內容,但是距離還很遙遠,我不確定它是否會有所幫助。 即使是一個可靠的起點,並確認我正在正確(或不正確)地進行操作,也會有所幫助。

看起來指令是執行此操作的最簡單方法,因為ng-model綁定中不能包含過濾器。

基於此,在此頁面上第二個答案的幫助下,我得到了很大的幫助 (可能被標記為重復的問題),我以自己想要的方式工作。

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM