删除正则表达式.replace中的最后一个字符

时间:2013-10-17 14:20:25

标签: jquery regex replace

我正在尝试检测数字,然后是“。”然后将它们包裹在<span>中,而不是最后一个“。”

到目前为止,这就是我所拥有的:

$(".item_title").each(function(index) {
    var t = $(this).html().replace(/(^\d+\.)/g, "<span>$1</span>");  
    $(this).html(t);
});

但我最终得到<span>5.</span>而我正在寻找<span>5</span>

另外,我正在使用正则表达式替换正确有效的方式吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

你可能正在寻找一个积极的先行,例如([0-9]+)(?=\.)

var t = $(this).html().replace(/([0-9]+)(?=\.)/g, "<span>$1</span>");  

哪个会转

This is my string. It is a nice string. I have a total of bananas 5. Yes. 5 bananas.

This is my string. It is a nice string. I have a total of bananas <span>5</span>. Yes. 5 bananas.

DEMO

如果您希望点消失,只需将其移出群组:

var t = $(this).html().replace(/(^\d+)\./g, "<span>$1</span>");  
//                                    ^^

这会将字符串变成以下内容(注意点已经消失):

This is my string. It is a nice string. I have a total of bananas <span>5</span> Yes. 5 bananas.

答案 1 :(得分:1)

如果要删除点,请将其从括号中取出

"5. some text 80.".replace(/(\d+)\s*\./g, "<span>$1</span>"); // \s* is needed if numbers can be followed by spaces