gpt4 book ai didi

javascript - 根据电话键盘将电话号码中的字母转换为数字

转载 作者:太空宇宙 更新时间:2023-11-04 15:07:11 25 4
gpt4 key购买 nike

我试图找到执行以下操作的最简单(或至少最短)的方法:

从输入字段中获取任何文本并将其转换如下:

abc => 2
def => 3
ghi => 4
...
wxyz => 9

*不属于英文字母的任何其他字符都将转换为“#”(或任何其他特殊字符)。

这可能听起来很简单,但代码可以变得非常简单和优雅,这就是我正在寻找的,php 或 js/jquery 脚本中的行数更少。如果它转换“abc”、“def”,我可以完成剩下的。

最佳答案

构建一个关联数组,将 A 映射到 2,B 映射到 2,C 映射到 2,D 映射到 3,等等。

遍历字符串,一次一个字符。如果在数组中找到一个字符,则将其连接到您的输出;如果没有将“#”连接到输出。您可能希望首先将字符串转换为全部大写或全部小写。

编辑补充:我没有包括代码,因为看起来 OP 知道 JavaScript 和 PHP,当然,代码会有所不同,但原理是相同的。

如果绝对肯定字符串是 ASCII/UTF-8/ISO-8859,则可以利用大写字母占据十进制 65 到 90 代码点这一事实,并且分配了三个字母到从 2 到 9 的每个数字,然后计算结果。 (请注意,美国电话中缺少 Q,Z 映射为零。)然而,这与其说是优雅,不如说是过于棘手。

今天早些时候我想起了这个:

“首先,调试比编写代码难两倍。所以,如果你尽可能巧妙地编写代码,那么根据定义,你就是不够聪明,无法调试它。” -- 布赖恩·克尼汉 (Brian Kernighan) 和 P.J. 普劳格,编程风格的要素

关于javascript - 根据电话键盘将电话号码中的字母转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25412594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com