检测字符是否为字母
Detecting if a character is a letter
给定一组单词,我需要将它们放在单词的第一个字母上键入的哈希中。我有单词 = {},键 A.。Z 和 0 表示数字和符号。我在做类似的事情
var firstLetter = name.charAt(0);
firstLetter = firstLetter.toUpperCase();
if (firstLetter < "A" || firstLetter > "Z") {
firstLetter = "0";
}
if (words[firstLetter] === undefined) {
words[firstLetter] = [];
}
words[firstLetter].push(name);
但这在 dieresis 和其他字符中失败了,就像在 Ärzteversorgung 这个词中一样。这个词放在"0"数组中,我怎么能把它放在"A"数组中?
您可以使用它来测试字符是否可能是字母:
var firstLetter = name.charAt(0).toUpperCase();
if( firstLetter.toLowerCase() != firstLetter) {
// it's a letter
}
else {
// it's a symbol
}
这是有效的,因为 JavaScript 已经有小写到大写字母的映射(反之亦然),所以如果一个字符没有变化toLowerCase()
那么它就不在字母表中。
尝试将字符转换为大写和小写,并检查是否有差异。只有字母字符在转换为各自的大写和小写时会发生变化(数字、标点符号等不会)。下面是一个使用此概念的示例函数:
function isALetter(charVal)
{
if( charVal.toUpperCase() != charVal.toLowerCase() )
return true;
else
return false;
}
您可以使用正则表达式。不幸的是,JavaScript 不认为国际字符是"单词字符"。但是您可以使用下面的正则表达式来做到这一点:
var firstLetter = name.charAt(0);
firstLetter = firstLetter.toUpperCase();
if (!firstLetter.match(/^'wÀÈÌÒÙàèìòùÁÉÍÓÚÝáéíóúýÂÊÎÔÛâêîôûÃÑÕãñõÄËÏÖÜäëïöüçÇßØøÅåÆæÞþÐð$/)) {
firstLetter = "0";
}
if (words[firstLetter] === undefined) {
words[firstLetter] = [];
}
words[firstLetter].push(name);
您可以使用
.charCodeAt(0);
获取ASCII图表中的位置,然后进行一些检查。
您要查找的范围可能是 65-90、97-122、128-154、160-165(含),但请通过查看 ASCII 图表仔细检查这一点
像这样的东西
if((x>64&&x<91)||(x>96&&x<123)||(x>127&&x<155)||(x>159&&x<166))
其中x
是字符代码
幸运的是,
现在无需外部库即可实现。直接来自文档:
let story = "It’s the Cheshire Cat: now I shall have somebody to talk to.";
// Most explicit form
story.match(/'p{General_Category=Letter}/gu);
// It is not mandatory to use the property name for General categories
story.match(/'p{Letter}/gu);
相关文章:
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 是否可以在Javascript中操作某些类型的字符
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 如何在ajax中检查密码是否小于8个字符
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- 使用jQuery.css()方法时,是否需要转义任何字符
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- 验证字符串是否仅包含 javascript 中的某些字符
- 测试输入是否只有阿拉伯字符
- 在JavaScript源代码中使用UTF-8字符文字是否安全
- 在javascript中使用单字符变量或函数名是否可以接受
- 检查最后键入的字符是否为空格
- 如何检查字符串是否包含非英语字符列表
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- Java Script Regex-查找脚本中是否只有允许的字符
- V8是否自动解析字符串中的ascii字符
- 检查任何输入或文本区域中是否存在非法字符
- 是否有一种方法可以从encodeURIComponent中排除某些字符
- 检查值是否具有给定字符RegEx
- 正则表达式,用于检查输入是否有字符或至少有1个笑脸