0

我是 JS 新手,尝试使用 -

/[0-9a-z]+$/gi
/[^0-9a-z]+$/gi

都没有工作。谁能告诉我哪里出错了?

4

1 回答 1

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

...捕获由单词组成的符号序列,而不是通过将它们分开的东西来分割短语。这是一个可以玩的小提琴。

更新:最后一件事。我觉得有点……对浪费sort只是为了得到max本质感到不安。我不知道你是否同意这些想法,我仍然会在这里更新搜索代码:

var longest;
words.forEach(function(e) {
  if (! longest || longest.length < e.length) {
    longest = e;
  }
});

是的forEach,因为我有点懒,想象一下不使用 IE8 是一种奢侈——;for...尽管如此,将其重写为常规的数组遍历例程还是很容易的。

更新了小提琴

于 2012-08-31T15:13:47.823 回答