Javascript regex: разрешены только английские буквы
Быстрый вопрос: мне нужно разрешить ввод только принимать буквы от a до z и от A до Z, но не может найти для этого выражения. Я хочу использовать метод javascript test().
Ответы
Ответ 1
/^[a-zA-Z]+$/.test('sfjd')
Примечание. Если у вас есть знаки препинания или что-то еще, все они тоже недействительны. Дефисы и символы подчеркивания недействительны. \w
охватывает a-zA-Z и некоторые другие слова. Все зависит от того, что вам нужно конкретно.
Ответ 2
Другим вариантом является использование флага без учета регистра i, тогда нет необходимости в дополнительном диапазоне символов A-Z.
var reg = /^[a-z]+$/i;
console.log( reg.test("somethingELSE") ); //true
console.log( "somethingELSE".match(reg)[0] ); //"somethingELSE"
Здесь DEMO о том, как это регулярное выражение работает с test() и match().
Ответ 3
Если вы не возражаете против этих специальных символов ("[", "\", "]", "^", "_", "`"
), вы также можете сделать:
/^[A-z]+$/.test('string')
var matches = [], special = [];
// Test ASCII characters (0-255)
for (var i=0,n=255; i < n; i++){
var char = String.fromCharCode(i); // get character
if ( /[A-z]/.test(char) ){
matches.push(char);
if (!/[a-zA-Z]/.test(char))
special.push(char);
}
}
console.log('matches: ', matches);
console.log('special characters: ', special);