Javascript Regex选择每个非字母数字字符和空格?

时间:2012-08-31 15:05:00

标签: javascript

我是JS的新手,尝试使用 -

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

既没有奏效。谁能告诉我哪里出错了?

1 个答案:

答案 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...数组行走例程非常容易。

Updated fiddle