有没有用javascript把输入的值变成数字的算法,比如输入字母J我要把它转成数字10赋值给a

解决方案 »

  1.   

    var s="j"
    document.write(s.charCodeAt(0)-96);
      

  2.   

    我可以认为你是想把字符序列中字母所在位置赋给变量吗var i = 'j'.toLowerCase();
    alert(i.charCodeAt(0) - "a".charCodeAt(0) + 1);
      

  3.   

    charCodeAt 方法
    返回一个整数,代表指定位置上字符的 Unicode 编码。strObj.charCodeAt(index)参数
    strObj必选项。任何 String 对象或文字。index必选项。将被处理的字符的从零开始计数的编号。有效值为 0 到字符串长度减 1 的数字。 说明
    一个字符串中的第一个字符编号为 0,第二个字符编号为 1,依此类推。 如果指定位置没有字符,将返回 NaN。示例
    以下示例阐明了 charCodeAt 方法的用法。 function charCodeAtTest(n){
      var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //初始化变量。
      var n;                                  //声明变量。
      n = str.charCodeAt(n - 1);              //获取位置 n 上字符的 Unicode 值。
      return(n);                              //返回该值。
    }
      

  4.   

    大写的J赋值10给a
    那大写的A又赋值多少给a呢?
    是按字母排序来的吗?这个,怎么能让别人猜呢?
      

  5.   

    大写的A给1小写的也给1,前面主要问题没描述清楚,其实想要的是不用区分大小写的字母赋值的方法,比如输入A或a都可以认为值是1,用charCodeAt(0)-96是小写a的值为1,charCodeAt(0)-64,是大写的A值为1,有没有办法不论输入A或a值都为1。
      

  6.   

    先用toLowerCase()方法把大写转换成小写
      

  7.   

    那就在s.charCodeAt(0)-96转换之前,把s转换成小写的,可以吗?
      

  8.   

    我了个去~~~
    var i = 'j'.toLowerCase();
    alert(i.charCodeAt(0) - "a".charCodeAt(0) + 1);我toLowerCase()了,那么无论大小写都是转换成小写来计算