给定一组单词,我需要将它们放在以单词首字母为键的散列中。
我有单词 = {},键 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”数组中?
最佳答案
您可以使用正则表达式。不幸的是,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);
关于javascript - 检测字符是否为字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10707972/