Подтвердить что ты не робот

Проверьте, содержит ли строка только буквы в javascript

Итак, я пробовал это:

if (/^[a-zA-Z]/.test(word)) {
   // code
}

Он не принимает этого: " "

Но он принимает это: "word word", который содержит пробел:/

Есть ли хороший способ сделать это?

4b9b3361

Ответ 1

С /^[a-zA-Z]/ вы проверяете только первый символ:

  • ^: положение подтверждения в начале строки
  • [a-zA-Z]: сопоставьте один символ, присутствующий в списке ниже:
    • a-z: символ в диапазоне между "a" и "z"
    • a-z: символ в диапазоне между "A" и "Z"

Если вы хотите проверить, являются ли все символы буквами, используйте вместо этого:

/^[a-zA-Z]+$/.test(str);
  • ^: положение подтверждения в начале строки
  • [a-zA-Z]: сопоставьте один символ, присутствующий в списке ниже:
    • +: между одним и неограниченным временем, как можно больше, возвращаясь по мере необходимости (жадный)
    • a-z: символ в диапазоне между "a" и "z"
    • a-z: символ в диапазоне между "A" и "Z"
  • $: позиция подтверждения в конце строки (или до разрыва строки в конце строки, если она есть)

Или, используя флаг без учета регистра i, вы можете упростить его до

/^[a-z]+$/i.test(str);

Или, поскольку вы хотите только test, а не match, вы можете проверить на противоположное и отрицать его:

!/[^a-z]/i.test(str);

Ответ 2

Самый быстрый способ - проверить, нет ли буквы:

if (!/[^a-zA-Z]/.test(word))

Ответ 3

Вам нужно

/^[a-zA-Z]+$/

В настоящее время вы соглашаетесь с одним символом в начале ввода. Если ваша цель состоять в том, чтобы сопоставить буквенные символы (один или несколько) от начала до конца, вам нужно повторить совпадение символа az (используя +) и указать, что вы хотите полностью совместить до конца (через $)

Ответ 4

Попробуйте это

var Regex='/^[^a-zA-Z]*$/';

 if(Regex.test(word))
 {
 //...
 }

Я думаю, он будет работать для вас.

Ответ 5

попробуйте добавить \S в ваш шаблон

^ [A-Za-Z]\S * $