本文介绍了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 - 不知道如何调试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!