我正在使用以下命令提取 Javascript 字符串中的字符:
var first = str.charAt(0);
我想检查它是否是一封信。奇怪的是,Javascript 中似乎不存在这样的功能。至少我找不到它。
我该如何测试?
我正在使用以下命令提取 Javascript 字符串中的字符:
var first = str.charAt(0);
我想检查它是否是一封信。奇怪的是,Javascript 中似乎不存在这样的功能。至少我找不到它。
我该如何测试?
我不相信有一个内置的功能。但是用正则表达式编写很容易
function isLetter(str) {
return str.length === 1 && str.match(/[a-z]/i);
}
对于那些没有被简单检查(例如 )考虑在内的特殊字符/[a-zA-Z]/.test(c)
,利用 ECMAScript 大小写转换 ( toUpperCase
)可能是有益的。它将考虑一些外国字母的非 ASCII Unicode 字符类。
function isLetter(c) {
return c.toLowerCase() != c.toUpperCase();
}
注意:此解决方案仅适用于大多数拉丁文、希腊文、亚美尼亚文和西里尔文脚本。它不适用于中文、日语、阿拉伯语、希伯来语和大多数其他脚本。
if( char.toUpperCase() != char.toLowerCase() )
只有在字母的情况下才会返回真
正如在下面的评论中指出的那样,如果您的字符是非英语、高 Ascii 或双字节范围,那么您需要添加代码点检查。
if( char.toUpperCase() != char.toLowerCase() || char.codePointAt(0) > 127 )
我相信这个插件有你想要的功能:http : //xregexp.com/plugins/(github 链接:https : //github.com/slevithan/xregexp)
有了它,您可以简单地将所有 unicode 字母与\p{L}
.
阅读此源文件的标题以查看它支持哪些类别:http : //xregexp.com/plugins/xregexp-unicode-categories.js