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);