簡體   English   中英

在JavaScript和計算器中將字母轉換為數字

[英]Convert letter to number in JavaScript and calculator

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

從輸入框中獲取價值

如何將輸入字母轉換為數字,例如A = 1 B = 2 C = 3 ....以及如何計算=

例如:

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

此函數接受大寫和小寫字母,並拋出所有非基本拉丁字母(AZ,az)的內容:

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

您可以使用內置的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);

小提琴

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;
}

嘗試使用String.prototype.split() index的屬性String.prototype.match() String.prototype.replace()RegExp /[^az]/ig來替換未AZ不區分大小寫字符, RegExp()將輸入與i標志進行匹配, for循環

 var a = "abcdefghijklmnopqrstuvwxyz"; var input = document.querySelector("input"); input.oninput = input.onclick = function(e) { this.value = this.value.replace(/[^az]/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() 
 <form> <input type="text" id="in_text" value="demo" title="Input letters az, AZ" /> <output> </output> </form> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM