【问题标题】:Regular Expressions Javascript正则表达式 Javascript
【发布时间】:2018-05-12 16:24:46
【问题描述】:

function palindrome(str) {
  var cleanStr = str.replace(/_\W/g, "");
  return cleanStr;
}

palindrome("_eye");

上述代码返回“_eye”作为输出。我可能遗漏了一些非常明显的东西,但为什么正则表达式不起作用?目的是删除任何不是单词或数字的字符。

【问题讨论】:

  • 您的正则表达式是“下划线后跟非单词字符/非数字”。您将需要使用 OR 运算符 | 来匹配其中任何一个。
  • @Bergi 这也很有效!也感谢解释,使用法更加清晰。

标签: javascript regex string replace palindrome


【解决方案1】:

您需要在字符周围使用方括号。另外,在括号后加上+ 可以消除此类字符的连续出现。

function palindrome(str) {
  var cleanStr = str.replace(/[_\W]+/g, "");
  return cleanStr;
}
console.log(palindrome("_eye"));

【讨论】:

  • 在没有+ 的情况下仍然可以工作,因为您使用的是全局标志。我想知道哪个更快,但这并不重要。
  • @MarcosCasagrande -- 希望this 有帮助。
  • @31piy 谢谢!我还想澄清一下,因为上面评论中的解决方案在我的情况下也同样适用,在哪里使用哪个?
  • @alhamz -- 随意使用。两者都是可行且有效的解决方案。
猜你喜欢
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多