将字母更改为以逗号分隔的数字?
Change Letters into Numbers seperated by commas?
我正在尝试创建一个按钮,将来自 "TextCollector" 输入的文本显示为用逗号分隔的数字,并忽略不在字母表中的任何符号。 更新:我也需要它来忽略字母大写的事实。
示例:
一=1
b = 2
c = 3
等等...
因此,如果我在底部的输入中输入 "cat's",将显示“3,1,20,19”。
这是我到目前为止尝试过的方法:
<form action="">
<input type="text" id="TextCollector" name="TextCollector" placeholder="Type in something">
<br>
<input type="button" value="Submit" onclick="ShowMe()">
</form>
<h1 id="numbers"></h1>
<script>
function ShowMe() {
var text = document.getElementById("TextCollector").value;
var textnum = text.charCodeAt(0) - 97;
document.getElementById("numbers").innerHTML = textnum;
}
</script>
但是我试过的代码只工作了一半,它只将第一个字母显示为数字而忽略了其余部分。另外,我的代码“0”是 "a",但我需要“1”是 "a"。
有人可以帮助我吗?我希望我说清楚了...
首先.replace
所有非字母字符与空字符串,然后你可以将结果字符串变成一个数组,.map
每个字符到它的字符代码,并用逗号连接:
function ShowMe() {
const replaced = document.getElementById("TextCollector").value.replace(/[^a-z]/gi, '').toLowerCase();
document.getElementById("numbers").textContent = [...replaced]
.map(char => char.charCodeAt(0) - 96)
.join(', ');
}
<form action="">
<input type="text" id="TextCollector" name="TextCollector" placeholder="Type in something">
<br>
<input type="button" value="Submit" onclick="ShowMe()">
</form>
<h1 id="numbers"></h1>
请允许我向您介绍几个概念,我强烈建议您学习这些概念,而不是复制粘贴给您的任何代码。我不打算详细介绍,因为老实说,您只需要知道如何在 google 搜索栏上提出正确的问题以获得答案。在 post.
的结尾,我还将讨论如何制定解决此类问题的策略。
循环
当你想多次重复一组指令时,你在编程中使用了循环。有多种写循环的方法,最流行的两种写循环的方法是:for循环和while循环。其他不太流行的方法包括do loop、recursion等
类型
Javascript 是弱类型的,当您尝试添加一个带有整数的 bool 值时,会导致很多奇怪和意外的行为。原始类型的例子有:Integer、Boolean、Char、String 等。数字可以用多种方式表示:integer、double、float。不必太担心它们之间的差异,但如果您需要使用小数和负值,请使用浮点数。布尔值是 TRUE 或 FALSE。 Char(Character 的缩写)是数字和字母之间的映射。 (如果您想了解为什么您的代码在 运行 这一行时输出“0”而不是“1”,请阅读此文档:
text.charCodeAt(0) - 97;
运算符
你应该知道什么是 +、-、*、/,做小学数学 class。你还应该知道 >(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)、&&(交集) , 也称为 AND), || (联合,也称为 OR)。还有一些生活质量运算符,例如:++(将值增加 1),--(将值减少 1),+=(将目标值增加给定的量),-=(将目标值减少给定的量)等等等等....
答案
将所有这些知识结合在一起,我们就得出了一个解决方案。
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;
我鼓励你从上面的解决方案中提出你不理解的问题。
**编辑:解决任何问题的策略是将其分解为子问题。您的目标是将字符串中的一堆字符转换为数字。问自己这些问题:
- 如何将字符转换为数字?
好吧,从你的代码来看,你似乎已经知道怎么做了。下一题
如何将所有字符都变成数字,而不仅仅是起始字符?
好的,仔细看看您应用于 "text" 值
的方法
charCodeAt(0)
零表示字符串的索引。字符串是一个 char 数组,如果您了解数组的工作原理,那么为什么它只有 returns 第一个字符就不足为奇了。
- 好的,我如何将这个 charCodeAt() 方法应用到 ALL 我的角色?
这有点棘手,因为如果您不知道编程(或递归)中循环的概念,您就没有足够的能力来解决这些问题。有许多免费的在线资源可用于学习循环等基本编程概念。我在这里推荐这个网站:https://www.w3schools.com/
- 好的,我可以将多个字符转换为数字。如何将它们粘合成一个字符串?
这是你可以做到的google。我就是这么做的。提示:如何将字符添加到字符串的末尾
- 如何删除字符串中的最后一个逗号?
Google: 如何删除字符串中的最后一个字符?
来源:
https://en.wikipedia.org/wiki/Control_flow#Loops
https://en.wikipedia.org/wiki/Primitive_data_type
https://www.w3schools.com/js/js_loop_for.asp
我正在尝试创建一个按钮,将来自 "TextCollector" 输入的文本显示为用逗号分隔的数字,并忽略不在字母表中的任何符号。 更新:我也需要它来忽略字母大写的事实。
示例:
一=1
b = 2
c = 3
等等...
因此,如果我在底部的输入中输入 "cat's",将显示“3,1,20,19”。
这是我到目前为止尝试过的方法:
<form action="">
<input type="text" id="TextCollector" name="TextCollector" placeholder="Type in something">
<br>
<input type="button" value="Submit" onclick="ShowMe()">
</form>
<h1 id="numbers"></h1>
<script>
function ShowMe() {
var text = document.getElementById("TextCollector").value;
var textnum = text.charCodeAt(0) - 97;
document.getElementById("numbers").innerHTML = textnum;
}
</script>
但是我试过的代码只工作了一半,它只将第一个字母显示为数字而忽略了其余部分。另外,我的代码“0”是 "a",但我需要“1”是 "a"。
有人可以帮助我吗?我希望我说清楚了...
首先.replace
所有非字母字符与空字符串,然后你可以将结果字符串变成一个数组,.map
每个字符到它的字符代码,并用逗号连接:
function ShowMe() {
const replaced = document.getElementById("TextCollector").value.replace(/[^a-z]/gi, '').toLowerCase();
document.getElementById("numbers").textContent = [...replaced]
.map(char => char.charCodeAt(0) - 96)
.join(', ');
}
<form action="">
<input type="text" id="TextCollector" name="TextCollector" placeholder="Type in something">
<br>
<input type="button" value="Submit" onclick="ShowMe()">
</form>
<h1 id="numbers"></h1>
请允许我向您介绍几个概念,我强烈建议您学习这些概念,而不是复制粘贴给您的任何代码。我不打算详细介绍,因为老实说,您只需要知道如何在 google 搜索栏上提出正确的问题以获得答案。在 post.
的结尾,我还将讨论如何制定解决此类问题的策略。循环
当你想多次重复一组指令时,你在编程中使用了循环。有多种写循环的方法,最流行的两种写循环的方法是:for循环和while循环。其他不太流行的方法包括do loop、recursion等
类型
Javascript 是弱类型的,当您尝试添加一个带有整数的 bool 值时,会导致很多奇怪和意外的行为。原始类型的例子有:Integer、Boolean、Char、String 等。数字可以用多种方式表示:integer、double、float。不必太担心它们之间的差异,但如果您需要使用小数和负值,请使用浮点数。布尔值是 TRUE 或 FALSE。 Char(Character 的缩写)是数字和字母之间的映射。 (如果您想了解为什么您的代码在 运行 这一行时输出“0”而不是“1”,请阅读此文档:
text.charCodeAt(0) - 97;
运算符
你应该知道什么是 +、-、*、/,做小学数学 class。你还应该知道 >(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)、&&(交集) , 也称为 AND), || (联合,也称为 OR)。还有一些生活质量运算符,例如:++(将值增加 1),--(将值减少 1),+=(将目标值增加给定的量),-=(将目标值减少给定的量)等等等等....
答案
将所有这些知识结合在一起,我们就得出了一个解决方案。
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;
我鼓励你从上面的解决方案中提出你不理解的问题。
**编辑:解决任何问题的策略是将其分解为子问题。您的目标是将字符串中的一堆字符转换为数字。问自己这些问题:
- 如何将字符转换为数字?
好吧,从你的代码来看,你似乎已经知道怎么做了。下一题
如何将所有字符都变成数字,而不仅仅是起始字符? 好的,仔细看看您应用于 "text" 值
的方法charCodeAt(0)
零表示字符串的索引。字符串是一个 char 数组,如果您了解数组的工作原理,那么为什么它只有 returns 第一个字符就不足为奇了。
- 好的,我如何将这个 charCodeAt() 方法应用到 ALL 我的角色?
这有点棘手,因为如果您不知道编程(或递归)中循环的概念,您就没有足够的能力来解决这些问题。有许多免费的在线资源可用于学习循环等基本编程概念。我在这里推荐这个网站:https://www.w3schools.com/
- 好的,我可以将多个字符转换为数字。如何将它们粘合成一个字符串?
这是你可以做到的google。我就是这么做的。提示:如何将字符添加到字符串的末尾
- 如何删除字符串中的最后一个逗号?
Google: 如何删除字符串中的最后一个字符?
来源:
https://en.wikipedia.org/wiki/Control_flow#Loops
https://en.wikipedia.org/wiki/Primitive_data_type
https://www.w3schools.com/js/js_loop_for.asp