用JavaScript编写回文程序,以便只允许使用字母数字值?

回文

回文词是单词,短语或数字,其向后读与向前读相同。例如马拉雅拉姆语,夫人,护士奔跑等等。

我们应该在这里使用正则表达式以仅允许使用字母数字字符。“ \ W”是一个内置的正则表达式,使我们的工作变得容易。有一些步骤可用来检查提供的字符串是否是回文。 

遵循的步骤

  • 首先,我们需要将字符串的所有字符更改为小写。

  • 稍后,我们需要删除所有非字母数字值。可以通过使用名为'\ W'的内置正则表达式来完成此任务,也可以构建自己的正则表达式。

  • 我们需要将所有非字母数字值替换为none(“”)。可以使用称为的内置方法来完成此任务replace()

  • 一旦从字符串中获取了非字母数字值,就需要检查它是否在向后和向前读取相同的值。

  • 我们需要使用string.reverse()方法反转精简后的字符串,并将生成的字符串与原始字符串进行比较。

  • 如果两者相等,则将在输出中显示“ true”,否则将显示“ false”。

在下面的示例中,尽管发送了非字母数字值(例如*,&等),但程序仅检查字母数字值并显示输出。  

示例

<html>
<body>
<script>
   function palindrome(str){
   var reg = /[\W_]/g;     // instead of '\W' we also can take "/[^a-zA-Z0-9]+/g"
   var smstr = str.toLowerCase().replace(reg, "");
   var reversed = smstr.split("").reverse().join("");
   if(reversed === smstr){
      document.write("true");
   }
   else {
      document.write("false");
   }
   }
   palindrome("a929a*/(';-=,.*")
</script>
</body>
</html>

输出结果

true