问题描述
问题:- 编写一个 javascript 函数来检查单词或句子是否为回文,而不管大小写和空格。将 HTML 文件命名为 palin.html。
点击按钮时发出适当的警报,名称为“palinbtn”。还提供一个名为“palin”的文本框,它接受单词/句子。
重要提示:
- 从给定的输入中删除所有空格并检查相同输入的回文,忽略大小写。
- 通过 alert() 显示适当的消息后,页面不应被重定向。
- 不要使用“let”或“const”关键字。相反,请使用“var”。
- 使用 getElementById() 或 getElementsByName() 从 HTML 组件中获取值。
- 确保所有标签和属性都是小写的
代码:-
<!DOCTYPE html>
<html>
<body>
//input from user using form
<form onsubmit="return display();">
Enter word/sentence to check for palindrome:<input
type="text"
name="palin"
id="palin"
/><br />
<input type="submit" name="palinbtn" value="Check palindrome" />
</form>
<script>
function display() {
//getting the value from textBox
var str = document.getElementById("palin").value;
//removing special char. and converting to lowercase
var str = str.replace(/\s/g,"").toLowerCase();
//removing whitespaces
var input = str.split();
//joining the reversed string
var output = input.reverse().join("");
if (str == output) {
alert("The entry is a palindrome.");
return false;
} else {
alert("The entry is not a palindrome");
return false;
}
}
</script>
</body>
</html>
解决方法
需要用空字符串分割才能得到所有字符。
var input = str.split('');
// ^^
,
通过 alert() 显示适当的消息后,页面不应被重定向。 警报();此代码中未使用
,你可以有一个更简单的代码:
if( str == str.toLowerCase().split('').reverse().join(''))