Валидация поля регулярным выражением

212
13 января 2018, 03:09

Нужно реализовать валидацию для поля. В поле можно вводить только латинские буквы, дефис и пробел. Если в поле есть другие символы то ошибка.

Answer 1

var rgxp = /[a-zA-Z-\s]/; 
 
function reg() { 
  if (!rgxp.test(String.fromCharCode(event.charCode))) { 
    console.error('not allowed char'); 
    setTimeout(function() { 
      console.clear(); 
    }, 3000); 
    event.preventDefault(); 
  } 
}
<input type="text" name="input2" onkeypress='reg()' />

Answer 2

Проверку можно сделать чисто на HTML, в данном случае HTML5. Единственное где использовал JavaScript это для задания кастомного сообщения об ошибке.

<form> 
  <input type="text" pattern="a-zA-Z -" oninvalid="this.setCustomValidity('Допустимы только: латинские буквы, пробел и тире.')"> 
  <input type="submit" value="Отправить"> 
</form>

READ ALSO
Вывод данных через выбор даты

Вывод данных через выбор даты

Делаю биг-дату, которая содержит в себе данные за каждый деньТребуется на фронте вставить календарь, благодаря которому можно выбрать дату...

209
Вопрос про оптимизацию кода

Вопрос про оптимизацию кода

Сегодня попробовал google closureЗаметил, что цифры в условиях он ставит на первое место:

237
Алгоритм построения дерева JSON, зная id и parent id?

Алгоритм построения дерева JSON, зная id и parent id?

Есть массив объектов со значениями id и parent_id

199
Отступ от верхнего края экрана при переходе по якорям

Отступ от верхнего края экрана при переходе по якорям

Добрый день! Задача состоит в следующемНа сайте вверху фиксированный блок определенной высоты

158