我正在尝试检测数字,然后是“。”然后将它们包裹在<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>
另外,我正在使用正则表达式替换正确有效的方式吗?
谢谢!
答案 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.
或如果您希望点消失,只需将其移出群组:
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