用 JavaScript 编写一个回文程序,使其只允许字母数字值?


回文是指即使反转后也与原始字符串相同的字符串。简单来说,回文字符串的长度为奇数,第 0 个索引和最后一个索引的元素相同,第 1 个索引与倒数第二个元素相同,依此类推。

回文包含字母数字元素;这意味着它也包含字母(a-z)和数字(0-9)。

回文字符串必须像这样 -

var str = "121Malayalam121";
Let’s understand with a suitable example.

让我们通过一个合适的例子来理解。

示例 1

在上面的示例中,您可以看到我们如何检查回文字符串。最初,我们创建一个字符串,通过 split 方法将其转换为数组,然后简单地反转数组,最后连接数组。

并使用 if 条件我们可以比较这两个字符串。

<!DOCTYPE html> <html> <body> <script> var str = "Hello"; var splitstr = str.split(""); var revstr = splitstr.reverse(); var joinstr = revstr.join(""); if(str == joinstr){ document.write("String is a palindrome string"); } else { document.write("String is not a palindrome string"); } </script> </body> </html>

使用正则表达式

正则表达式是包含一些用于字符、数字或特殊符号的逻辑符号的表达式。通过正则表达式,我们可以匹配或验证输入值。

步骤如下

  • 首先我们需要将字符串的所有字符都更改为小写。
  • 稍后我们需要删除所有非字母数字值。此任务可以通过使用名为 '\W' 的内置正则表达式来完成,或者我们可以构建我们自己的正则表达式。
  • 我们需要将所有非字母数字值替换为空字符串("")。此任务可以使用名为 replace() 的内置方法来完成。
  • 一旦我们从字符串中获取了非字母数字值,我们需要检查它是否在前后方向上都相同。
  • 我们需要使用 string.reverse() 方法反转精炼后的字符串,并将结果字符串与原始字符串进行比较。
  • 如果两者相等,则输出将显示“true”,否则将显示“false”。

示例 1

在下面的示例中,我们讨论了如何执行正则表达式以匹配或替换不可接受的值。

<!DOCTYPE html> <html> <body> <script> var str = '@#elle'; var reg = /[\W_]/g; var newstr = str.toLowerCase().replace(reg, ""); document.write(newstr); var strsplit = newstr.split(""); var revstr = strsplit.reverse(); var joinstr = revstr.join(""); if(joinstr === newstr){ document.write("<br>String is palindrome string"); } else { document.write("<br>String is not palindrome string"); } </script> </body> </html>

示例 2

在这个例子中,我们将从用户那里获取输入,并确定输入的字符串是否是回文。

<!DOCTYPE html> <html> <body> <script> var str = prompt('Enter a string'); var reg = /[\W_]/g; var newstr = str.toLowerCase().replace(reg, ""); document.write(newstr); var strsplit = newstr.split(""); var revstr = strsplit.reverse(); var joinstr = revstr.join(""); if(joinstr === newstr){ document.write("<br>String is palindrome string"); } else { document.write("<br>String is not a palindrome string"); } </script> </body> </html>

在上面的程序中,我们使用了正则表达式来匹配和避免输入值中除了字母数字值之外的其他值,并且我们正在从用户那里获取输入。

示例 3

在给定的示例中,我们使用不同的正则表达式操作和 replace() 方法来替换字符串中的一些不需要的东西,例如特殊字符。然后,我们使用 split()、reverse() 和 join() 等方法来查找回文字符串。最后,我们使用 if 条件来检查字符串是否是回文。

<!DOCTYPE html> <html> <body> <script> var str = prompt('Enter a string'); var reg = /[^A-Za-z0-9]/g; var newstr = str.replace(reg, ""); document.write(newstr); var strsplit = newstr.split(""); var revstr = strsplit.reverse(); var joinstr = revstr.join(""); if(joinstr === newstr){ document.write("<br>String is a palindrome string"); } else { document.write("<br>String is not a palindrome string"); } </script> </body> </html>

更新于: 2022年8月29日

580 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告