我是 JS 新手,尝试使用 -
/[0-9a-z]+$/gi
/[^0-9a-z]+$/gi
都没有工作。谁能告诉我哪里出错了?
代替
var sentence_split = arr.split(/[0-9a-z]+$/gi);
和
var sentence_split = arr.split(/[^0-9a-z]+/gi);
...如果你喜欢这样。
说明:原始正则表达式被锚定(用$
)到字符串的末尾,并由单词分割 - 而不是分隔它们的符号。
尽管如此,做你所做的事情的方法不止一种:我可能会选择:
var words = sentence.match(/(\w+)/g);
...捕获由单词组成的符号序列,而不是通过将它们分开的东西来分割短语。这是一个可以玩的小提琴。
更新:最后一件事。我觉得有点……对浪费sort
只是为了得到max
本质感到不安。我不知道你是否同意这些想法,我仍然会在这里更新搜索代码:
var longest;
words.forEach(function(e) {
if (! longest || longest.length < e.length) {
longest = e;
}
});
是的forEach
,因为我有点懒,想象一下不使用 IE8 是一种奢侈——;for...
尽管如此,将其重写为常规的数组遍历例程还是很容易的。