我之前問過類似的問題,得到了正確的回答。這次雖然我寧願嘗試在「By」和「Date」之後分別獲得名稱的兩個變量。javascript正則表達式修剪爲'空格'和'短劃線'或匹配
與下面的比賽的問題是,它不拿起如果名稱中有空格或它破折號:
<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]);
});
隨着後上面它不會拿起破折號或空格「通過」。
看到這裏jfiddle:http://jsfiddle.net/GYSbR/1/
我知道這很簡單,謝謝。正在尋找「到下一線」,這是做到了。 – ToddN 2012-02-29 02:37:49
另一個呃逆。如果單詞「By」不在那裏,有沒有一種方法可以返回NULL或零或其他名稱?如果不包含「By」,如果單詞「By」不存在(又名匹配[2]),我只想拉日期? – ToddN 2012-02-29 04:36:49
將它包裝在一個組中? '(?:By \ s +)?'然後它會嘗試匹配'By \ s +'(如果它在那裏),否則忽略它。 – 2012-02-29 04:41:08