私は以前同様の質問をして正しい応答を得ました。今回は、「By」と「Date」の後に別々に名前の2つの変数を取得しようとしていますが、後に、それは文句を言わない拾うの上にダッシュやスペースでjavascript 'space'と 'dash'またはmatchとの正規表現のトリム
<p class="review-rating">
By carolyn.fleetwood
- Feb 11, 2012
-
Something.com
</p>
<p class="review-rating">
By Dont-work
- Feb 11, 2012
-
Something.com
</p>
<p class="review-rating">
By wont work
- Feb 11, 2012
-
Something.com
</p>
$('.review-rating').each(function() {
var matches = $(this).text().match(/\s*By\s+([\w.]+)\s*-\s*([\w, ]+)/);
alert("Date: " + matches[2] + " | By: " + matches[1]);
});
:
以下の試合での問題は、名前にスペースまたはダッシュを持っている場合、それが拾っていないことです"By"。
こちらを参照してくださいjfiddle:http://jsfiddle.net/GYSbR/1/
私はそれが何か単純であることを知っていた、ありがとう。 "次の行まで"を探していたが、これはそれだった。 – ToddN
別のつまずき。 "By"という単語がない場合は、NULLやゼロなどを返す方法がありますか?私は、「By」という単語がない場合(別名「2」)、「By」という単語が含まれていないと、日付を取得したいだけですか? – ToddN
グループにまとめますか? '(?:By \ s +)?'それがあれば 'By \ s +'にマッチします。そうでなければ無視します。 –