如何在 JavaScript 中创建回文码?

How can I create a pallindrome code in JavaScript?

所以我正在尝试为回文创建一个代码,这就是我尝试的方式。还有其他或更好的方法吗?

但是现在只显示第一个值是否相等,显示true还是false?

var inpo= prompt("Please enter to check if palindrome")
var inp = parseFloat(inpo)
var a = inpo.split('')
var inpo2 = a.reverse()
var len= inpo.length

for (var i =0;i< len ;i++) { 
  if (inpo[i] == inpo2[i] )
    alert("True")
  else
    alert("False")
}

如果您要创建回文检查代码,这里有一种简单的方法。拆分,反转然后连接。

str1 = "xxaa";
str2 = str1.split('').reverse().join("");

if (str1 == str2) {
  alert("good");
} else {
  alert("not");
}

您可以检查字符串中的单个字符,从右边消耗 1 个字符,从左边消耗另一个字符,直到您发现字符串完成或有 2 个不相等的字符。我用经典的 for 循环实现了。 请注意,最近才支持字符串 [] 的括号表示法,如果没记错的话,您可以使用 charAt

let inp = "otdto";

console.log(isPalindrome(inp));

function isPalindrome(inp) {
  const len = inp.length;
  for (let i = 0; i < Math.floor(len / 2); i++)
    if (inp[i] != inp[len - i - 1])
      return false;

  return true;
}

一种检查单词或整个短语是否为回文的方法:

function isPalindrome(str) {
    // Escape the string: Eliminate punctuation and spaces, enforce lower case
    let escaped = str.replace(/[^A-Za-z0-9_]/g,"").toLowerCase();
    
    // Reverse the escaped string
    let reversed = escaped.split('').reverse().join('');
    
    //compare
    return escaped == reversed;
}

console.log(isPalindrome('Level'));
console.log(isPalindrome('Red rum, sir, is murder'));

希望评论能起到很好的解释作用

此外,您在 THIS jsfiddle 中有一个 prompt 示例。