javascript - 识别句子中的回文

标签 javascript jquery html palindrome

我在这里找到的很多解决方案都是在检查字符串是否为回文后给出 true 或 false。我有一个函数可以检查字符串是否是回文:

    function palindrome(myString){

    /* remove special characters, spaces and make lowercase*/
    var removeChar = myString.replace(/[^A-Z0-9]/ig, "").toLowerCase();

    /* reverse removeChar for comparison*/
    var checkPalindrome = removeChar.split('').reverse().join('');

    /* Check to see if myString is a Palindrome*/
    if(removeChar === checkPalindrome){

    document.write("<div>"+ myString + " is a Palindrome <div>");
    }else{

    document.write("<div>" + myString + " is not a Palindrome </div>");
    }
    }

    palindrome("Oh who was it I saw, oh who?")
    palindrome("Madam")
    palindrome("Star Wars")

但这并不是我想要的。它只是检查字符串是否是回文。我想更新该函数,以便它识别句子中的所有回文,而不是给出 true 或 false。因此,如果有这样的句子 - “女士和约翰中午出去了”,它将列出该句子中的回文 - “女士,中午”

如有任何帮助,我们将不胜感激!

最佳答案

function findPalindromes(str, min) {
  min = min || 3;
  var result = [];
  var reg = str.toLowerCase();
  var reg = reg.replace(/[^a-z]/g, ''); // remove if you want spaces
  var rev = reg.split("").reverse().join("");
  var l = reg.length;
  for (var i = 0; i < l; i++) {
    for (var j = i + min; j <= l; j++) {
      var regs = reg.substring(i, j);
      var revs = rev.substring(l - j, l - i);
      if (regs == revs) {
        result.push(regs);
      }
    }
  }
  return result;
}

var str1 = "Madam and John went out at noon";
console.log(str1, findPalindromes(str1));
var str2 = "\"Amore, Roma\" and \"There's no 'x' in Nixon\" are palindromes.";
console.log(str2, findPalindromes(str2));

关于javascript - 识别句子中的回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42015706/

相关文章:

html - 如果元素在父元素之外,则隐藏该元素

html - 使用 float : left, 和 float: right 时,将容器的高度增加到最高元素

javascript - jQuery height() 返回实际高度值的大约一半

javascript - 我如何更改此 Javascript 代码来验证数据

jquery - 如何禁用 google web viewer 全屏选项

javascript - Jquery 使切换和替换多个元素

javascript - 无法访问 $.getJSON 返回的数据

javascript - 如何设置工具提示的第一个和最后一个 child 的位置

javascript - babel 是否为 let 绑定(bind)生成了稍微错误的代码?

javascript - 如果不满足要求则停止行动