检查字符是否是 JavaScript 中的字母

在 JavaScript 中检查字符是否为字母

Check if a Character is a Letter in JavaScript

比较字符的小写和大写变体以检查它是否是字母,例如char.toLowerCase() !== char.toUpperCase();. 如果比较返回false,则该字符是一个字母,否则该字符不是字母。

索引.js
function charIsLetter(char) { if (typeof char !== 'string') { return false; } return char.toLowerCase() !== char.toUpperCase(); } console.log(charIsLetter('a')); // 👉️ true console.log(charIsLetter('!')); // 👉️ false console.log(charIsLetter(' ')); // 👉️ false console.log(charIsLetter(null)); // 👉️ false

我们首先检查提供的值是否具有类型,
如果没有则
string返回。false

然后我们比较字符串的小写和大写变体。如果字符是字母,则它必须有小写和大写变体。

这是可行的,因为标点符号和数字等字符没有小写和大写变体。

索引.js
// 👇️ true console.log('?'.toLowerCase() === '?'.toUpperCase()); // 👇️ true console.log('1'.toLowerCase() === '1'.toUpperCase()); // 👇️ true console.log(' '.toLowerCase() === ' '.toUpperCase());

比较每个字母的小写和大写变体返回false

索引.js
// 👇️ false console.log('a'.toLowerCase() === 'a'.toUpperCase()); // 👇️ false console.log('д'.toLowerCase() === 'д'.toUpperCase());

或者,您可以使用正则表达式。

使用正则表达式检查字符是否为字母

要检查字符是否为字母,请调用test()以下正则表达式 – 上的方法/^[a-zA-Z]+$/如果字符是字母,test
方法将返回
true,否则false返回。

索引.js
function charIsLetter(char) { if (typeof char !== 'string') { return false; } return /^[a-zA-Z]+$/.test(char); } console.log(charIsLetter('a')); // 👉️ true console.log(charIsLetter('!')); // 👉️ false console.log(charIsLetter(' ')); // 👉️ false console.log(charIsLetter(null)); // 👉️ false

我们使用了
RegExp.test
方法来检查一个字符是否是一个字母。

如果正则表达式在字符串中匹配,则test方法返回,否则返回。truefalse

正斜杠/ /标记正则表达式的开始和结束。

插入符^匹配输入的开头,美元符号$匹配输入的结尾。

方括号之间的部分[]称为字符类,匹配一定范围的大小写a-z字母 A-Z

加号+与前面的项目(字母范围)匹配 1 次或多次。

如果您提供 2 个或更多字符,这也适用。

索引.js
function charIsLetter(char) { if (typeof char !== 'string') { return false; } return /^[a-zA-Z]+$/.test(char); } console.log(charIsLetter('a')); // 👉️ true console.log(charIsLetter('abc')); // 👉️ true
您还可以使用i标志使正则表达式不区分大小写。这将允许您从方括号中删除大写范围。 A-Z
索引.js
function charIsLetter(char) { if (typeof char !== 'string') { return false; } return /^[a-z]+$/i.test(char); } console.log(charIsLetter('A')); // 👉️ true console.log(charIsLetter('Abc')); // 👉️ true

i标志允许我们进行不区分大小写的搜索并替换大写A-Z范围。

如果您在阅读正则表达式时需要帮助,请查看

来自 MDN的
正则表达式速查表。