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