用 JavaScript 编写一个回文程序,以便只允许使用字母数字值?
javascriptobject oriented programmingprogramming
回文是一个字符串,即使反转后也与原始字符串相同。简而言之,回文字符串的长度为奇数,第 0 个索引中的元素和最后一个索引中的元素相同,第 1 个索引中的元素与倒数第二个元素相同,依此类推。
回文包含字母数字元素;这意味着它还包含字母表(a-z)和数字(0-9)。
回文字符串必须看起来像 −
var str = "121Malayalam121"; 让我们通过一个合适的例子来理解。
让我们用一个合适的例子来理解。
示例 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>