как сделать регулярное выражение javascript

210
09 апреля 2018, 00:36

нужно чтобы регулярное выражение запрещало писать пробелы и все символы кроме нижнего подчеркивания и дефиса , запрет пробелы и все остальные символы. Так же разрешить писать буквы английские в любом регистре. Цифры тоже разрешить. Я смог додуматься до этого но оно не работает

$scope.matchPatternPassword = new RegExp("[A-Za-z0-9 !@#$%^&*()_]");
Answer 1

попробуйте так:

new RegExp("[-_a-zA-Z0-9]")
Answer 2

Если нужно запретить ввод пробелов, зачем добавлять его в символьный класс? То же касается символов !@#$%^&*() - если они "под запретом", их тоже необходимо удалить из символьного класса.

Так как вам необходимо проверить целую строку на наличие букв и цифр ASCII + - и _, символьный класс нужно квантифицировать и заключить в метасимволы ^ (начало строки) и $ (конец строки).

В общем, используйте

$scope.matchPatternPassword = /^[A-Za-z0-9_-]*$/;

Что равносильно написанию

$scope.matchPatternPassword = /^[\w-]*$/;

где

  • ^ - начало строки
  • [\\w-]* - 0 и более (*, для 1 и более повторений используйте +) букв и цифр ASCII, а также знаков _ и -
  • $ - конец строки

Не забудьте добавить

ng-trim="false"

иначе можно вводить сколько угодно пробелов в начале и конце строки.

function formCtrl($scope){ 
    $scope.matchPatternPassword = /^[\w-]*$/; 
    $scope.onSubmit = function(){ 
        console.log("form submitted"); 
    } 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
<div ng-app ng-controller="formCtrl"> 
<form name="myForm" ng-submit="onSubmit()"> 
    <input type="text" ng-model="price" name="myfield" ng-pattern="matchPatternPassword" required ng-trim="false">  
    <span ng-show="myForm.myfield.$error.pattern">Неправильный формат!</span> 
    <input type="submit" value="submit"/> 
</form> 
</div>

READ ALSO
Достать переменную

Достать переменную

Приветствую! Помогите извлечь в глобальную зону видимости переменную xБлагодарю заранее

193
Добавление массива в mysql

Добавление массива в mysql

Создаю корзину и возник вопрос: сохраняю товары в корзине, из базы они списываются в нееНо если я передумал их добавлять, нужно очистить корзину...

270
Ошибка при подключении компонента

Ошибка при подключении компонента

Всем ПриветУ меня такая проблема: Прохожу курс на Удеми по Vue

164
Есть массив, который выводит список. Как сделать так, чтобы при клике на элемент в списке открывалась страничка с заголовком этого элемента?

Есть массив, который выводит список. Как сделать так, чтобы при клике на элемент в списке открывалась страничка с заголовком этого элемента?

Есть массив, который выводит списокКак сделать так, чтобы при клике на элемент в списке открывалась страничка с заголовком этого элемента?

205