如何在 JavaScript 中将一个字母转换为其相应的数字?
例如:
a = 0
b = 1
c = 2
d = 3
我发现了这个关于将数字转换为 26 个字符字母表之外的字母的问题,但它要求相反。
有没有办法在没有庞大数组的情况下做到这一点?
如何在 JavaScript 中将一个字母转换为其相应的数字?
例如:
a = 0
b = 1
c = 2
d = 3
我发现了这个关于将数字转换为 26 个字符字母表之外的字母的问题,但它要求相反。
有没有办法在没有庞大数组的情况下做到这一点?
您可以使用从字符串中的任何索引获取代码点* String.prototype.charCodeAt
。如果您的字符串是单个字符,您将需要 index 0
,并且其代码为a
97 (很容易从 JavaScript as 获得'a'.charCodeAt(0)
),所以您可以这样做:
s.charCodeAt(0) - 97
如果您想String.fromCharCode
反其道而行之,请获取 Unicode codepoints* 并返回一个字符串。
String.fromCharCode(97 + n)
*不完全
对不起,我以为是走另一条路。
试试这个:
var str = "A";
var n = str.charCodeAt(0) - 65;
这是简短的,并且支持大写和小写。
const alphaVal = (s) => s.toLowerCase().charCodeAt(0) - 97 + 1
您可以将 1 分配给“a”,而不是 0,以便轻松跳过(或包含)标点符号、数字或大写字母。
function a1(txt, literal){
if(!literal) txt= txt.toLowerCase();
return txt.split('').map(function(c){
return 'abcdefghijklmnopqrstuvwxyz'.indexOf(c)+1 || (literal? c: '');
}).join(' ');
}
var str = '你好,世界!';
/* a1(str,'literal')>>value: (String)
H 5 12 12 15 1 7 1 9 14 , 23 15 18 12 4 !
*/
/* a1(str) >>value: (String)
8 5 12 12 15 1 7 1 9 14 23 15 18 12 4
*/