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

...単語を構成する記号のシーケンスをキャプチャする代わりに、句を区切るもので分割します。これが遊ぶためのフィドルです。

更新:そして最後に 1 つ。私は少し...本質的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 に答える