如何在javascript中将字母转换为数字?

时间:2013-02-11 18:09:49

标签: javascript converters

我一直在努力创建一个简单的javascript程序,用户输入单词/句子,程序会显示你要输入的数字,以便在翻盖手机中发短信。例如,如果我输入“add”,它将输出“122”。

我该怎么做?我尝试了很多不同的东西,没有任何作用。看起来它应该是一个简单的程序。你可以帮我做这个,或者把我链接到类似的程序吗?

感谢。

2 个答案:

答案 0 :(得分:3)

 function str2num(mystr) {
   mystr = mystr.toUpperCase();
   var conv = [];
   var l = mystr.length;
   for (var i=0; i conv[i] = mystr.charCodeAt(i)-65;
 }
   return conv;
 }

Read this

电话转换器

http://www.yaldex.com/FSEquivalents/PhoneNumberConverter.htm

以防链接中断为代码:

<script language="javascript" type="text/javascript">

<!-- Begin
 function convert(input) {
 var inputlength = input.length;
 input = input.toLowerCase();
 var phonenumber = "";
 for (i = 0; i < inputlength; i++) {
 var character = input.charAt(i);

 switch(character) {
 case '0': phonenumber+="0";break;
 case '1': phonenumber+="1";break;
 case '2': phonenumber+="2";break;
 case '3': phonenumber+="3";break;
 case '4': phonenumber+="4";break;
 case '5': phonenumber+="5";break;
 case '6': phonenumber+="6";break;
 case '7': phonenumber+="7";break;
 case '8': phonenumber+="8";break;
 case '9': phonenumber+="9";break;
 case '-': phonenumber+="-";break;
 case  'a': case 'b': case 'c': phonenumber+="2";break;
 case  'd': case 'e': case 'f': phonenumber+="3";break;
 case  'g': case 'h': case 'i': phonenumber+="4";break;
 case  'j': case 'k': case 'l': phonenumber+="5";break;
 case  'm': case 'n': case 'o': phonenumber+="6";break;
 case  'p': case 'q': case 'r': case 's': phonenumber+="7";break;
 case  't': case 'u': case 'v': phonenumber+="8";break;
 case  'w': case 'x': case 'y': case 'z': phonenumber+="9";break;
}
}
document.myform.number.value = phonenumber;
return true;
}
//  End -->
</script>
<form name=myform>
<table border=0>
<tr>
<td>Alphanumeric #:</td>
<td><input type=text size=20 maxlength=20 name=alphabet value="Rachel"></td>
</tr>
<tr>
<td>Converted #:</td>
<td><input type="text" size=20 maxlength=20 name="number"></td>
</tr>
<tr>
<td align=center colspan=2><input type=button value="Convert" onClick="return    convert(document.myform.alphabet.value)"></td>
</table>
</form>

答案 1 :(得分:1)

这应该做你想做的事:http://jsfiddle.net/qbFxs/1/

var map = [' ',,'abc','def','ghi','jkl','mno','pqrs','tuv','wxyz'];

$("#input").keyup(function(e){
    var v = this.value.toLowerCase(),
        out = [];

    for(var i = 0; i < v.length; i++){
        for (var j = 0; j < map.length; j++){
            if (map[j] && map[j].indexOf(v[i]) > -1){
                out.push(j);
                break;
            }
        }
    }

    $("#output").text(out.join(''));
});

注意:我将空间映射到0,如果你不想要这个,你可以摆脱地图数组中的第一个元素。