var letter = document.getElementById("in_text").value;
从输入框获取价值
如何将输入字母转换为数字 例如A = 1 B = 2 C = 3 ....以及如何计算=
例如:
输入:demo
输出:37(4 + 5 + 13 + 15)
答案 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。
答案 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
循环
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;