How to convert letters to numbers with Javascript?

How could I convert a letter to its corresponding number in JavaScript?

For example:

a = 0
b = 1
c = 2
d = 3

I found this question on converting numbers to letters beyond the 26 character alphabet, but it is asking for the opposite.

Is there a way to do this without a huge array?


Solution 1:

You can get a codepoint* from any index in a string using String.prototype.charCodeAt. If your string is a single character, you’ll want index 0, and the code for a is 97 (easily obtained from JavaScript as 'a'.charCodeAt(0)), so you can just do:

s.charCodeAt(0) - 97

And in case you wanted to go the other way around, String.fromCharCode takes Unicode codepoints* and returns a string.

String.fromCharCode(97 + n)

* not quite

Solution 2:

Sorry, I thought it was to go the other way.

Try this instead:

var str = "A";
var n = str.charCodeAt(0) - 65;

Solution 3:

This is short, and supports uppercase and lowercase.

const alphaVal = (s) => s.toLowerCase().charCodeAt(0) - 97 + 1