javascript - 将字母转换为逗号分隔的数字?
问题描述
我正在尝试创建一个按钮,将“TextCollector”输入中的文本显示为用逗号分隔的数字,并忽略任何不在字母表中的符号。更新:我还需要它来忽略字母大写的事实。
例子:
a = 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>
推荐阅读
- javascript - 使用 Express 和 SQLite(连接和断开连接)Node.js
- scala - 如何将 DataFrame 转换为 Dataset [CaseClass]?
- freertos - vTaskGetRunTimeStats 输出在哪里打印?
- javascript - 根据 JSON 结果生成按钮
- java - Java:连接到 psql 数据库会引发错误 (ClassNotFoundException)
- mongodb - Mongod 访问被拒绝
- sql - 循环遍历不同的数据库并联合选择特定的表
- html - 根据兄弟元素中包含的元素设置 CSS 背景颜色
- javascript - 消息提示确认后如何关闭任务
- sql-server - SQL Server 数据透视表显示为一行