JavaScript中的Palindrome Checker - 不知道如何调试 [英] Palindrome Checker in JavaScript - don't know how to debug

查看:245
本文介绍了JavaScript中的Palindrome Checker - 不知道如何调试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在javascript中构建回文检查器。所有非字母的字符都应该被删除,这样一个短语,如一个人,一个计划,运河,巴拿马也可以是一个回文。



  function reverse(str){return str.split()。reverse()。join();} function palindrome(str){str = str.replace(/ [^ a-zA-Z] + /,)。toLowerCase(); if(str == reverse(str)){return true; } else {return false; }}  



现在,上述错误在哪里?



该代码适用于一些示例。但是,例如一个人,一个计划,一个运河,巴拿马和永远不会奇怪的返回虚假,意味着某个地方必须是一个错误。

解决方案

您需要提供全局匹配标志到您的正则表达式:

  / [^ a-zA-Z] + / g 
^


I want to build a palindrome checker in javascript. All non-letter characters should be removed, so that a phrase like "A man, a plan, a canal. Panama" can also be a palindrome.

function reverse(str) {
  return str.split("").reverse().join("");
}


function palindrome(str) {
  str = str.replace(/[^a-zA-Z]+/,"").toLowerCase();
  if(str == reverse(str)) {
    return true;
  }
  else {
    return false;
  }
}

Now, where is the mistake in the above lines?

The code works on some examples. But for instance "A man, a plan, a canal. Panama" and "never odd or even" return false, meaning somewhere has to be a mistake.

解决方案

You need to provide the global match flag to your regex:

/[^a-zA-Z]+/g
            ^

这篇关于JavaScript中的Palindrome Checker - 不知道如何调试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆