1

我正在尝试检测数字后跟“。” 然后将它们包装在<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>

另外,我做正则表达式替换的方式是否正确有效?

谢谢!

4

2 回答 2

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.

演示

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

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.
于 2013-10-17T14:24:33.540 回答
1

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

"5. some text 80.".replace(/(\d+)\s*\./g, "<span>$1</span>"); // \s* is needed if numbers can be followed by spaces
于 2013-10-17T14:31:55.357 回答