无法找出回文字符串/数字

时间:2015-02-08 12:17:30

标签: javascript jquery

我写了以下代码来找出回文数/字符串。

<!doctype html>
<html>
<head>
<script>

function Palindrom() {
var rev="";
var str= document.getElementById("name1").value;


for ( var i=str.lenght; i>=0; i--)
{

var rev=rev + str.charAt(i);
}

if (str == rev)
{
alert ("Enter value is palindrome");
}

else
{alert ("Value is not palindrome");}

}

</script>
</head>
<body>
Enter String:<input type="text" name="Name" id="name1">
<button type="button" onclick="Palindrom();"> Check it</button>

</body>
</html>

然而,即使我在框中输入回文字符串,它也会给出其他声明的o / p ..我不认为有什么不对。请更正代码并解释错误。谢谢,同样

4 个答案:

答案 0 :(得分:1)

你应该在str.length - 1处开始反转(因为字符串是零索引的(也就是说,字符串中的第一个位置是0而不是1,因此,对于5个字符的字符串,最后一个位置是4,而不是5)。另外,为什么不使用一些现有的功能而不是重新发明?

x = '1234'
y = x.split('').reverse().join('')
alert(y)

答案 1 :(得分:0)

str.lenght

中有拼写错误

此外,您应该使用str.length-1

开始循环

工作示例:http://jsbin.com/ponoro/2/edit

示例:

function Palindrom() {
var rev="";
var str= '12342554321';


for ( var i=str.length-1; i>=0; i--)
{

var rev=rev + str.charAt(i);
}
alert(rev)
if (str == rev)
{
alert ("Enter value is palindrome");
}

else
{alert ("Value is not palindrome");}

}

答案 2 :(得分:0)

完全str.length函数返回数组的实际长度而不是偏移量,即用简单语言说,数组的最后一个索引是1减去数组的长度......

答案 3 :(得分:0)

编辑你的拼写错误&#34; .length&#34; ......如果你愿意,也可以消除循环。

function checkPalindrome(num){
    if(num == parseInt(num.toString().split('').reverse().join(''))){
        return true;
    }
    return false;
}