Итак, я пробовал это:
if (/^[a-zA-Z]/.test(word)) {
// code
}
Он не принимает этого: " "
Но он принимает это: "word word"
, который содержит пробел:/
Есть ли хороший способ сделать это?
Итак, я пробовал это:
if (/^[a-zA-Z]/.test(word)) {
// code
}
Он не принимает этого: " "
Но он принимает это: "word word"
, который содержит пробел:/
Есть ли хороший способ сделать это?
С /^[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);
Самый быстрый способ - проверить, нет ли буквы:
if (!/[^a-zA-Z]/.test(word))
Вам нужно
/^[a-zA-Z]+$/
В настоящее время вы соглашаетесь с одним символом в начале ввода. Если ваша цель состоять в том, чтобы сопоставить буквенные символы (один или несколько) от начала до конца, вам нужно повторить совпадение символа az (используя +
) и указать, что вы хотите полностью совместить до конца (через $
)
Попробуйте это
var Regex='/^[^a-zA-Z]*$/';
if(Regex.test(word))
{
//...
}
Я думаю, он будет работать для вас.
попробуйте добавить \S в ваш шаблон
^ [A-Za-Z]\S * $