Не работает регулярное выражение в js

396
24 ноября 2016, 10:24

Что бы я не вводил, приложение переходит ко второму окну

n = new Array();
f = new Array();
x = true;
while (x) {
    name = prompt("Введіть ім'я");
    if (name.match("/[А-Яа-я]/")) {alert("error");
        return false;}
    if (name==null) {x = false; }
    firstname=prompt("Введіть фамілію");
    if (firstname == null) x = false;
    n.push(name);
    f.push(firstname);
}
if (!x) {
    for(var i=0;i<n.length-1,i<f.length-1;i++){
        document.write("Імя: " + n[i] +" Прізвище " + f[i]+"<br />");
    }
}
Answer 1

Надо понимать разницу между "Не работает в языке X." и "Не знаю регулярок, что не так?".
Проверка должна быть такая:

/^[а-яё]+$/i.test(name)

Чем решение выше больше подходит:

  1. Функция RegExp#test лишь проверяет что текст подходит под регулярку, что выгоднее и быстрее того же RegExp#match.
  2. Конструкции ^ и $ говорят что проверка должна быть от начала до конца строки, а не удовлетворяться одним верным символом в во всей строке (12$%5%8ф1%).
  3. Буква ё не входит в диапазон а-я (особенности разворачивания диапазона, абшибка ИМХО).
READ ALSO
Выбор значения элемента select и подставить в тег input

Выбор значения элемента select и подставить в тег input

Есть выпадающий список (select) и текстовое поле (input) в одной форме. При выборе элемента из select я получаю его значение.

579
JS - OneSignal SDK Ищет файлы не в указанной директории

JS - OneSignal SDK Ищет файлы не в указанной директории

Здравствуйте ребята. Помогите пожалуйста понять в чем проблема.

524
Почему не отрабатывает функция JS?

Почему не отрабатывает функция JS?

Есть у меня следующий код:.

472
Javascript $.post

Javascript $.post

Как получить данные на email из $. post ?.

371