Regex JQuery правильный путь - PullRequest
0 голосов
/ 07 мая 2011

Я пытаюсь сделать несколько проверок формы и столкнулся с некоторыми проблемами.Прежде всего кто-то может сказать мне, что функция соответствия - это правильный способ проверки строки.Во-вторых, кто-нибудь может объяснить, почему это не работает и каков правильный формат.Я пытаюсь проверить, есть ли что-нибудь, кроме алфавитов (букв). Он отлично работает для чисел и возвращает ошибку, но если я ввожу (.) /;и т. д. все, кроме числа, которое это позволяет, и никакой ошибки не сообщается.

  if ($("#firstname").val().match(/[a-zA-Z]/))

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

   if ($("#firstname").val().match(/[a-zA-Z]/))
   {  // no match carry on... }else

   {/ found match display error }

Спасибо за помощь очень ценится!

Ответы [ 3 ]

2 голосов
/ 07 мая 2011

Вы, наверное, ищете /^[a-zA-Z]+$/.

В настоящее время вы просто ищете буквенный символ в строке, а не ищете строку, которая состоит только из них.

Что касается вашего второго вопроса, конечно, match будет успешным, если совпадение найдено, поэтому ваша условная обработка обратная.

if ($("#firstname").val().match(/^[a-zA-Z]+$/)) {
   // string contains only alphabetcharacters
}
else {
   // non-alphabet characters found, or string was empty
}
1 голос
/ 07 мая 2011

Этот код должен работать:

if ($("#firstname").val().match(/^([a-zA-Z])*$/))
0 голосов
/ 08 мая 2011

О match(), посмотрите на этот ответ на другой вопрос:
JS / Jquery, совпадению не найдено совпадение PNG = ('/ gif | jpg | jpeg | png /')

...