JavaScript数字到字母

JavaScript数字到字母,javascript,Javascript,我最近一直在尝试编写一个问题代码,其中一些JS代码将字母转换为数字,例如1=a 我当前的代码如下所示(使用HTML脚本标记): 字母数字#: 转换的#: 但是,每当我尝试将对应于x(24)的数字转换为字母时,它会给出“bd”,因为它分别处理2和4。有没有一种简单的方法可以阻止这种情况,这样当我输入24时,它会产生“x”?试试这个: String.fromCharCode(96+24) 您可以将24替换为其他数字。当您循环输入时,您调用的是input.charAt(i),但一次只能提取一个字

我最近一直在尝试编写一个问题代码,其中一些JS代码将字母转换为数字,例如1=a

我当前的代码如下所示(使用HTML脚本标记):


字母数字#:
转换的#:
但是,每当我尝试将对应于x(24)的数字转换为字母时,它会给出“bd”,因为它分别处理2和4。有没有一种简单的方法可以阻止这种情况,这样当我输入24时,它会产生“x”?

试试这个:

String.fromCharCode(96+24)

您可以将24替换为其他数字。

当您循环输入时,您调用的是
input.charAt(i)
,但一次只能提取一个字符。如果你想让它拉一个两位数的数字,你需要写代码这样做。否则,每次读取和处理一位数字


拉动单个字符时,请检查它是否介于0和9之间(包括0和9)。如果是,在将所需字符串传递到
开关之前,循环下两个字符并构建所需字符串,这样您就可以获得所需的多位数输入。

您应该执行以下操作:

function covert(input)
{
    var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
    var nums=["1","2","3","4","5","6","7","8","9","1-0","1-1","1-2","1-3","1-4","1-5","1-6","1-7,"1-8","1-9","2-0","2-1",2-2","2-3","2-4",2-5",2-6"]
    var letters = input.lowerCase().split("");

    for(var i=0;i<letters.length;i++)
       if(letters[i].lowerCase != letters[i].toUpperCase()) //Checking if it's a letter 
          phonenumber+=toString(alphabet.indexOf(letter[i])+1;);


    var dashesAndNum=input.replace(/[A-Za-z],' ').split(" ");

    for(var i=0;i<dashesAndNum.length;i++)
       if(dashesAndNum[i] == "0" || dashesAndNum[i] == "-")
          phonenumber+=dashesAndNum[i];
       else
          phonenumber+=alphabet[num.indexOf(dashesAndNum[i])];

    document.myform.number.value = phonenumber;
        return true;
}
功能转换(输入)
{
变量字母表=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”];
变量nums=[“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“1-0”、“1-1”、“1-2”、“1-3”、“1-4”、“1-5”、“1-6”、“1-7”、“1-8”、“1-9”、“2-0”、“2-1”、“2-2”、“2-3”、“2-4”、“2-5”、“2-6”]
var letters=input.lowerCase().split(“”);

对于(var i=0;i来说,在生成的数字之间使用
-
的概念。这意味着,你不能用一个数字包围
-
的东西来编码

function convert(input) {
    var inputlength = input.length,
        CODE = '0abcdefghijklmnopqrstuvwxyz',
        phonenumber = "",
        character,
        i;
    input = input.toLowerCase();
    for (i = 0; i < inputlength; i++) {
        character = input[i];
        if (isFinite(input[i]) && '-' === input[i + 1] && isFinite(input[i+2])) {
            i += 2;
            character += input[i];
        }
        phonenumber += ~CODE.indexOf(character) ? ('' + CODE.indexOf(character)).split('').join('-') : (character === '-' ? '-' : CODE[character]);
    }
    document.myform.number.value = phonenumber;
    return true;
}

input.charAt(i);
一次返回1个字符您的输入是什么,只是
24
?如果有更多的数字,它们是如何分开的?因此输入可以是数字也可以是字符?您预期的
Will123
的转换输出是什么?23-9-12-12-转换器产生的是什么
function convert(input) {
    var inputlength = input.length,
        CODE = '0abcdefghijklmnopqrstuvwxyz',
        phonenumber = "",
        character,
        i;
    input = input.toLowerCase();
    for (i = 0; i < inputlength; i++) {
        character = input[i];
        if (isFinite(input[i]) && '-' === input[i + 1] && isFinite(input[i+2])) {
            i += 2;
            character += input[i];
        }
        phonenumber += ~CODE.indexOf(character) ? ('' + CODE.indexOf(character)).split('').join('-') : (character === '-' ? '-' : CODE[character]);
    }
    document.myform.number.value = phonenumber;
    return true;
}
function convert(input) {
    var inputlength = input.length,
        CODE= '0abcdefghijklmnopqrstuvwxyz',
        SEPARATOR = '|',
        phonenumber = "",
        character,
        i;

    input = input.toLowerCase();
    for (i = 0; i < inputlength; i++) {
        character = input[i];
        if (isFinite(input[i]) && SEPARATOR === input[i + 1] && isFinite(input[i + 2])) {
            i += 2;
            character += input[i];
        }
        phonenumber += ~CODE.indexOf(character) ? ('' + CODE.indexOf(character)).split('').join(SEPARATOR) : (character === '-' ? '-' : CODE[character]);
    }
    document.myform.number.value = phonenumber;
    return true;
}