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