在JavaScript和计算器中将字母转换为数字

时间:2016-01-31 07:59:19

标签: javascript

  var letter = document.getElementById("in_text").value;

从输入框获取价值

如何将输入字母转换为数字 例如A = 1 B = 2 C = 3 ....以及如何计算=

例如:

输入:demo
输出:37(4 + 5 + 13 + 15)

4 个答案:

答案 0 :(得分:2)

此函数接受大写和小写字母,并抛出不是基本拉丁字母(A-Z,a-z)的所有内容:

var letterSum = s =>
  s.toLowerCase().
  split('').
  map(s => s.charCodeAt(0)-0x60).
  filter(c => 1 <= c && c <= 26).
  reduce((x,y) => x+y, 0);

如果你再尝试

alert(letterSum("demo"));

你会看到警报37。

JSFiddle

答案 1 :(得分:0)

您可以使用内置的charCodeAt方法确定每个字符的数值(基于其Unicode值)。

例如:

var str = document.getElementById("in_text").value,
    numVal = 0,
    chars = str.split('');

for (var c in chars)
    numVal += (chars[c].toUpperCase().charCodeAt(0) - 64);

请参阅Fiddle

答案 2 :(得分:0)

function calculateStringValue(string) {
    var alphabet = "abcdefghijklmnopqrstuvwxyz";
    string = string.toLowerCase();
    var value = 0;

    for(var i = 0; i < string.length; i++) {
        value += alphabet.indexOf(string[i]) + 1;
    }

    return value;
}

答案 3 :(得分:0)

尝试使用String.prototype.split()的{​​{1}},index属性,String.prototype.match() String.prototype.replace() RegExp来替换非z不区分大小写的字符, /[^a-z]/ig将输入与RegExp()标记匹配,i循环

&#13;
&#13;
for
&#13;
var a = "abcdefghijklmnopqrstuvwxyz";
var input = document.querySelector("input");
input.oninput = input.onclick = function(e) {
      this.value = this.value.replace(/[^a-z]/ig, "");
      var res = 0;
      var n = this.value.split("");
      for (var i = 0; i < n.length; i++) {
        res += a.match(new RegExp(n[i], "i")).index + 1
      }
      this.nextElementSibling.innerHTML = res      
    }

input.click()
&#13;
&#13;
&#13;