这是问题说明。 编写一个javascript函数,以检查单词或句子是否是回文,无论大小写和空格如何。 这是我用于检查回文数的代码,但我不知道如何检查空格。
<html>
<body>
<script type="text/javascript">
function checkPalindrome() {
var revStr = "";
var str = document.getElementById("str").value;
var i = str.length;
for (var j = i; j >= 0; j--) {
revStr = revStr + str.charAt(j);
}
if (str == revStr) {
alert("The entry is Palindrome");
} else {
alert("The entry is not a Palindrome");
}
}
</script>
<form>
Enter a String/Number: <input type="text" id="str" name="string" />
<br />
<input type="submit" value="Check" onclick="checkPalindrome();" />
</form>
</body>
</html>
我希望输出结果将显示忽略空白的结果。
答案 0 :(得分:1)
您可以使用String.prototype.split()
,Array.prototype.reverse()
和Array.prototype.join()
之类的内置方法来反转字符串:
function checkPalindrome() {
var str = document.getElementById("str").value;
var revStr = str.split('').reverse().join('');
if(str == revStr) {
alert("The entry is Palindrome");
}
else {
alert("The entry is not a Palindrome");
}
}
Enter a String/Number: <input type="text" id="str" name="string" />
<br />
<input type="submit" value="Check" onclick="checkPalindrome();"/>
答案 1 :(得分:0)
尝试
function checkPalindrome() {
var s=document.getElementById("str").value;
var str = s.replace(/ /g, '').toLowerCase();
var revStr = [...str].reverse().join``;
if (str == revStr) {
alert("The entry is Palindrome");
} else {
alert("The entry is not a Palindrome");
}
}
<form>
Enter a String/Number:
<input type="text" id="str" name="string" />
<br />
<input type="submit" value="Check" onclick="checkPalindrome(this);" />
</form>
答案 2 :(得分:0)
在将字符串与反向字符串进行比较时,只需使用 .equalsIgnoreCase()方法而不是 == 即可。
var str="ma d Am";
var revStr="";
for(int j=str.length()-1; j>=0; j--) {
// revStr =(str.charAt(j)==' ')?revStr+" " :revStr+(str.charAt(j));
revStr = revStr+(str.charAt(j));
}
if(str.equalsIgnoreCase(revStr)) {
alert("The entry is Palindrome");
}
else {
alert("The entry is not a Palindrome");
}
}