Как я могу удалить специальный символ из пользовательского ввода, используя Javasvript / angularjs? - PullRequest
0 голосов
/ 01 апреля 2020

Хотите удалить нижеприведенные символы из пользовательского ввода

!@#$%^&*()-+=\|[]{}/:;',>.<?

Например, пользователь вводит значение ниже

"Test1 Dat!@#$%^&*()-+=\|[]{}/:;',>.<?a Re_enter

Ожидаемый результат = Тест1 Данные Re_enter

Я пытался регулярное выражение, но я не получил точное

var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
   
    $scope.submit = function() {
        var data = $scope.user;
        console.log(data);
    };
    
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="formCtrl">
  <form novalidate>
    Data:<br>
    <input type="text" ng-model="user.data"><br>
  
    <br><br>
    <button ng-click="submit()">SUBMIT</button>
  </form>
  
</div>

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Элемент ввода имеет свойство, называемое pattern

. Существует RegExp, который позволяет вам ограничивать ваш ввод от определенных шаблонов, таких как ваш

Я думаю, этого будет достаточно, просто чтобы Символы слова (/\w*/g)

<input type="text" pattern='*Your RegExp*' ng-model="user.data"><br>

Это был способ HTML

В качестве альтернативы вы можете проверить отправленные входные данные во FrontEnd на основе React или в глубоком конце в BackEnd. Есть много решений:)

1 голос
/ 01 апреля 2020

Для опыта пользователя было бы лучше, если бы вы не разрешили вводить эти символы в первый раз. Попробуйте использовать onChange событие из <input type="text" ng-model="user.data"> и отфильтровать новое значение с помощью регулярного выражения, только после этого установите отфильтрованное значение для модели.

Вы можете найти соответствующее регулярное выражение в этом ответе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...