javascript:跨越字符串中的最后两个单词

时间:2015-10-15 16:07:45

标签: javascript jquery regex string

使用javascript,我试图在字符串的最后两个单词周围插入一个范围。

使用下面的正则表达式,我可以得到最后一个字,但我无法弄清楚如何获得最后两个单词。

var $div = $('div');
$div.html($div.text().replace(/(\w+?)$/, '<span>$1</span>'));

3 个答案:

答案 0 :(得分:3)

你需要一个由空格分隔的第二个\w,所以

$div.html($div.text().replace(/(\w+\s\w+?)$/, '<span>$1</span>'));

如果你可以有多个空格,那就选择

$div.html($div.text().replace(/(\w+\s+\w+?)$/, '<span>$1</span>'));

答案 1 :(得分:2)

将文字分解为单词并使用slice方法查找除最后两个单词以外的所有单词以及最后两个单词。

var words = $div.text().split(' ');

$div.html(words.slice(0, words.length - 2).join(' ') + " " + "<span class='bold'>" + 
words.slice(words.length-2, words.length).join(' ') + "</span>");

小提琴:http://jsfiddle.net/rjs4gac1/

答案 2 :(得分:0)

您需要在它们之间检查另一个单词\w+和一个空白字符(或更多)\s+

$div.html($div.text().replace(/(\w+\s+\w+?)$/, '<span>$1</span>'));