编写一个javascript函数以检查单词或句子是否是回文字母,而不考虑大小写和空格

时间:2019-07-24 04:32:31

标签: javascript

这是问题说明。 编写一个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>

我希望输出结果将显示忽略空白的结果。

3 个答案:

答案 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");
        }
    }