javascript - JavaScript 中的回文检查器 - 不知道如何调试

标签 javascript regex debugging palindrome

我想用 javascript 构建一个回文检查器。应删除所有非字母字符,以便像“A man, a plan, a canal. Panama”这样的短语也可以是回文。

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;
  }
}

现在,上面几行中的错误在哪里?

该代码适用于一些示例。但是例如“一个人,一个计划,一条运河。巴拿马”和“从不奇数或偶数”返回错误,这意味着某处必须是一个错误。

最佳答案

您需要提供 global match flag到你的正则表达式:

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

关于javascript - JavaScript 中的回文检查器 - 不知道如何调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32395229/

相关文章:

javascript - load-scripts.php 从哪里加载 jquery.js 文件?

javascript - d3js - 将父元素添加到选择中

javascript - 当前面有一个可选字符时,我如何强制某些字符必须存在?

javascript - Angular Reactive Form Validator 中的密码验证错误

c# - Visual Studio 忽略输出文件夹中的 PDB 文件(来自 NUGET 包)

c++ - 如何使用 gdb 查找 g++ 代码中的浮点异常

javascript - AngularFire 中 ul 列表的三向绑定(bind)

javascript - WinJS 缓存 facebook 个人资料图片

javascript - 修改与 jQuery X-Editable 库一起使用时 Select2 下拉选择的输出

ios - 使用 NSPredicate MATCHES 获取 CoreData 实体时,用户输入的键会破坏正则表达式