Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript和计算器中将字母转换为数字_Javascript - Fatal编程技术网

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

在JavaScript和计算器中将字母转换为数字,javascript,Javascript,从输入框中获取值 如何将输入字母转换为数字 e、 g A=1 B=2 C=3…如何计算= e、 g: 输入:demo 输出:37(4+5+13+15)您可以使用内置的charCodeAt方法确定每个字符的数值(基于其Unicode值) 例如: var letter = document.getElementById("in_text").value; 请参阅函数calculateStringValue(字符串){ var alphabet=“abcdefghijklmnopqrstuvxy

从输入框中获取值

如何将输入字母转换为数字 e、 g A=1 B=2 C=3…如何计算=

e、 g:

输入:
demo


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

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

例如:

  var letter = document.getElementById("in_text").value;
请参阅函数calculateStringValue(字符串){ var alphabet=“abcdefghijklmnopqrstuvxyz”; string=string.toLowerCase(); var值=0; 对于(变量i=0;i此函数接受大小写字母,并抛出所有不是基本拉丁字母(a-Z,a-Z)的内容:

你会看到它的警报37


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

var a=“abcdefghijklmnopqrstuvxyz”;
var输入=document.querySelector(“输入”);
input.oninput=input.onclick=函数(e){
this.value=this.value.replace(/[^a-z]/ig,”);
var-res=0;
var n=此.value.split(“”);
对于(变量i=0;i


您可以使用对象/数组来存储映射,甚至可以使用字母表的ASCII值。我建议您使用math.js阅读中的范围概念,我不明白为什么要这样做。若你们需要根据字母在字母表中的实际位置得到精确的数字,你们需要一个简单的数组,可以表示A=1,B=2等(在我的语言字母表中,会有其他数字)。否则您可以使用ASCII。@guest271314,已修复。
var str = document.getElementById("in_text").value,
    numVal = 0,
    chars = str.split('');

for (var c in chars)
    numVal += (chars[c].toUpperCase().charCodeAt(0) - 64);
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;
}
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"));