Angular JS директива, которая будет разрешать буквенные символы и будет включать в себя capslock и пробел - PullRequest
0 голосов
/ 18 января 2019

Ниже приведена моя угловая директива js, которая допускает только алфавитные символы, но проблема в том, что она отключает capslock / space. Цель состоит в том, чтобы не вводить специальные символы и цифры в качестве входных данных только для алфавита, но не отключать capslock / space / shift, поскольку в приложении пользователь может вводить свое имя заглавными буквами. Есть идеи ?. Я использую директиву по сравнению с библиотекой ng-pattern.

app.directive('validEn', function () {
    return {
        require: '?ngModel',
        link: function (scope, element, attrs, ngModelCtrl, SweetAlert) {
            if (!ngModelCtrl) {
                return;
            }

            ngModelCtrl.$parsers.push(function (val) {
                var clean = val.replace(/[^a-z]+/g, '');
                console.log("sfdsfd")
                if (val !== clean) {
                    ngModelCtrl.$setViewValue(clean);
                    ngModelCtrl.$render();
                }
                return clean;
            });

            element.bind('keypress', function (event) {
                if (event.keyCode === 32) {
                    event.preventDefault();
                }
            });
        }
    };
});

1 Ответ

0 голосов
/ 18 января 2019

Просто измените следующее регулярное выражение var clean = val.replace(/[^a-z]+/g, ''); на var clean = val.replace(/[^a-z|^A-z|^\s]+/g, '');

...