【发布时间】:2018-06-17 18:47:57
【问题描述】:
我正在尝试反转字符串,并过滤掉非字母字符。但由于某种原因,该函数返回一个数组而不是一个字符串。
var palindromes = function(str) {
str = str.toLowerCase().split("").reverse("").join("");
return str.match(/[a-z]/g);
}
如果我通过 "foof!" 我期望 "foof",但我得到的是 ["f", "o", "o", "f"] 真正奇怪的是 return str 返回字符串,但标点符号当然保留了。所以看起来 match() 造成了问题。
【问题讨论】:
-
为什么
match在那里检查回文?不应该只是return str.toLowerCase().split("").reverse("").join("") == str吗? -
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 表示
match的返回值是一个数组... -
@putvande oooohhhh...所以如果它是一个数组,我可以用什么方法代替?
-
str.replace(/[^a-z]/g, '');过滤非字母字符 -
我还注意到 return str.match(/[a-z]/g).join(""); 给了我预期的结果......至少到目前为止。
标签: javascript arrays regex string