Javascript 将字母改为逗号分隔的数字?

Javascript 将字母改为逗号分隔的数字?,javascript,html,character-replacement,Javascript,Html,Character Replacement,我试图创建一个按钮,将“TextCollector”输入的文本显示为逗号分隔的数字,并忽略字母表中没有的任何符号更新:我还需要它忽略字母大写的事实 示例: a=1 b=2 c=3 等等 因此,如果我在底部的输入中输入“cat”,则会显示“3,1,20,19” 以下是我迄今为止所尝试的: 函数ShowMe(){ var text=document.getElementById(“TextCollector”).value; var textnum=text.charCodeAt(0)-97;

我试图创建一个按钮,将“TextCollector”输入的文本显示为逗号分隔的数字,并忽略字母表中没有的任何符号更新:我还需要它忽略字母大写的事实

示例:

a=1

b=2

c=3

等等

因此,如果我在底部的输入中输入“cat”,则会显示“3,1,20,19”

以下是我迄今为止所尝试的:



函数ShowMe(){ var text=document.getElementById(“TextCollector”).value; var textnum=text.charCodeAt(0)-97; document.getElementById(“数字”).innerHTML=textnum; }
首先
。将所有非字母字符替换为空字符串,然后可以将生成的字符串转换为数组,
。将每个字符映射为其字符代码,并用逗号连接:

函数ShowMe(){
const replaced=document.getElementById(“TextCollector”).value.replace(/[^a-z]/gi,”).toLowerCase();
document.getElementById(“数字”).textContent=[…已替换]
.map(char=>char.charCodeAt(0)-96)
。加入(‘,’);
}



请允许我向您介绍一些概念,我强烈建议您学习这些概念,而不是复制粘贴提供给您的任何代码。我不会说得太详细,因为老实说,你所要知道的就是如何在谷歌搜索栏上问正确的问题来得到你的答案。在文章的最后,我还将讨论如何制定策略来解决类似这样的问题

循环

当您想多次重复一组指令时,在编程中使用循环。有多种方法可以编写循环,最流行的两种编写循环的方法是:for循环和while循环。其他不太流行的方法包括do循环递归

类型

Javascript是弱类型的,这会导致很多奇怪和意外的行为,如果您尝试使用整数添加布尔值。基本类型的示例有:整数、布尔、字符、字符串等。数字可以用多种方式表示:整数、双精度、浮点。不要太担心它们之间的差异,但是如果需要使用小数和负值,请使用浮点。布尔值为TRUE或FALSE。Char(Character的缩写)是数字和字母之间的映射。(如果您想了解运行此行时代码输出“0”而不是“1”的原因,请阅读本文档:

text.charCodeAt(0) - 97;
操作员


你应该知道+,-,*,/,做什么小学数学课。你还应该知道>(大于),<(小于),>=(大于或等于),看起来您需要将输入中键入的字符串拆分为字符,并处理每个字符的翻译。您可以创建两个数组,一个用于数字,一个用于字母,然后每个空格将对应于另一个数字,一旦您有了要转换的任何字母/数字的索引,只需转到数组并获取(索引),除了数组从0开始,所以a=0,b=1,c=2,等等。在询问之前,你做了些什么来帮助自己?你清楚地注意到它只转换第一个字母,其他什么都没有。你检查过你的代码并注意到你只使用了一次转换,并且只对第一个字母使用了它吗?如果你对你可以自己解决这个问题。你注意到97给了你一个错误的结果。你试过用96看看是否有用吗?哎呀,我没想到。等一下……我还需要脚本忽略字母大写的事实,所以不是把“a”变成“-31”,而是把“a”变成“1”以及“a”。然后首先调用
toLowerCase
,您可以描述JavaScript中不存在的各种类型(例如char、float、double、integer;JavaScript只有
String
Number
,其中包含
BigInt
您没有提到的内容)。如果您坚持使用。您似乎在混合其他语言(例如C)的概念,这会更好,这让刚开始学习的人感到困惑,尤其是当你不清楚什么东西适用于哪种语言时。谢谢你的建议。事后看来,我只是漫无边际,但我会尽量不再犯同样的错误
string text = document.getElementById("TextCollector").value;
var i;
var textnum;

//create empty string variable to append char values to
var myString = '';
for (i = 0; i < text.length; i++)
{
    //Convert char to number
    textnum = text.charCodeAt(i) - 96;

    //concatenate textnum to string, and add a comma at the end
    myString = myString + textnum + ",";
}

//remove the last unwanted comma by applying "substr" method to the string
myString = myString.substr(0,myString.length - 1);
document.getElementById("numbers").innerHTML = textnum;