Проверьте, содержит ли строка только буквы в javascript
Итак, я пробовал это:
if (/^[a-zA-Z]/.test(word)) {
// code
}
Он не принимает этого: " "
Но он принимает это: "word word", который содержит пробел:/
Есть ли хороший способ сделать это?
Ответ 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))
{
//...
}