【发布时间】:2012-05-29 07:04:25
【问题描述】:
给定一组单词,我需要将它们放在以单词的第一个字母为键的散列中。 我有单词 = {},键 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);
但这会因分词和其他字符而失败,例如在单词 Ärzteversorgung 中。 那个词放在“0”数组里,我怎么把它放在“A”数组里?
【问题讨论】:
-
您只想将 Ä 之类的字符检测为字母,还是将 Ä 视为 A 检测?
-
Ä 不是 A。您需要将带重音的字符映射到不带重音的字符。
-
您还必须映射 Ä 和该字符的其他字母。就像您为 0 1 2 3 ..... 和 abc 等所做的那样。
-
是否适合使用正则表达式测试,例如
/[\w\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]/.test(firstLetter)?
标签: javascript utf-8 character-encoding