使用javascript,我试图在字符串的最后两个单词周围插入一个范围。
使用下面的正则表达式,我可以得到最后一个字,但我无法弄清楚如何获得最后两个单词。
var $div = $('div');
$div.html($div.text().replace(/(\w+?)$/, '<span>$1</span>'));
答案 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>");
答案 2 :(得分:0)
您需要在它们之间检查另一个单词\w+
和一个空白字符(或更多)\s+
:
$div.html($div.text().replace(/(\w+\s+\w+?)$/, '<span>$1</span>'));