在JavaScript和计算器中将字母转换为数字
从输入框中获取值 如何将输入字母转换为数字 e、 g A=1 B=2 C=3…如何计算= e、 g: 输入:在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
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尝试使用
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"));