以下技巧可让您获取字母表中字母的索引:
let index = "x".charCodeAt() - 97;
但是,仅当您的字母是英语时,该方法才有效。有什么方法可以对任何随机语言执行此操作吗?
谢谢。
答案 0 :(得分:3)
否,只有ASCII表中存在的字母才能使用此类功能提取。
答案 1 :(得分:1)
您可以执行类似的操作。 charCodeAt()
获取UTF-16编码的Unicode字符的索引。
这意味着您将能够使用它来获取0到0xFFFF之间的任何Unicode字符的索引。确实,如果您想使用任何一种语言来执行此操作,都应使用codePointAt()
,因为这样可以访问所有unicode。只要您能够在unicode中字母的索引和字母的“字母”之间进行映射,就可以执行上述的“技巧”。
对于英语而言,这特别容易,因为unicode将从索引97开始以字母顺序存储所有英语字母,因此,要从unicode索引转换为英语字母索引,您只需从unicode索引中减去97。 (但这仅适用于小写字母)
对于其他语言,这不是那么简单,因为Unicode不太可能以“字母顺序”存储所有字符,而且某些语言没有“字母顺序”。
这到底有多难,将取决于您要使用的特定语言。
建议您阅读: