我的问题有两个部分。我正试图检查日期是否是回文。在下面的代码中,即使字符串实际上是回文,我也会不断得到"Not a palindrome"
的结果。
function isPalindrome(str){
var rev = str.reverse;
if(str === rev){
console.log("This is a palindrome.");
}
else{
console.log("Not a palindrome");
}
}
isPalindrome("2002");
我的问题的第二部分是:如果我希望函数接受两个参数function isPalindrome(start_date, end_date)
并让它检查回文年之间的日期然后按时间顺序返回那些年份,我该怎么做?我不是要求任何人真正为我做这件事。我只是要求解释如何实现它。
提前致谢。
答案 0 :(得分:0)
它可能是您正在使用的反向功能。您可以输出转速值来查看其中的内容。
我建议你使用这个:How do you reverse a string in place in JavaScript?
答案 1 :(得分:0)
我不熟悉任何人的原生javascript实现中的任何字符串reverse()函数。但是这里我写了一段时间回来做了回文事,fwiw:
String.prototype.reverse = function (){
//Another way to reverse a string is to use Array's reverse:
// "this.split('').reverse().join('')";
//but that's boring, and recursion is fun!
if (this.length < 2) { return this.toString() };
return this.slice(-1) + this.slice(0,-1).reverse();
}
String.prototype.is_palindrome = function (){
return this.toString() === this.reverse();
}
检查字符串是否是回文。
关于你问题的第二部分,我不确定如何做到这一点。我首先要看看通过javascript的Date对象可以原生地使用什么。检查MDN。你只需要处理这些年份,所以我只是先弄清楚年份范围,然后重复一遍,检查整个过程中的回文。
答案 2 :(得分:-1)
您是先剥离非数字字符吗?
var strippedDate = str.replace(/[^\d]/g, "");
return strippedDate == strippedDate.reverse();