循环访问字符串中的数字(仅限数字)

Loop through numbers in a string (numbers only)

本文关键字:数字 访问 字符串 循环      更新时间:2023-09-26

我试图通过在字符串周围包裹一个<span>标签来突出显示字符串的第 4、5 和第 6 个数字。该字符串包含数字、逗号、美元符号,偶尔还包括点。

这是我的字符串:

"$116,023,150"

我希望输出完全相同,除了第 4、第 5 和第 6 个数字包含在 <span> 标签内。我尝试使用for()循环循环字符串。但是,我不希望任何其他字符影响计数(仅影响字符串中的数字)。

"$116,<span>0</span><span>2</span><span>3</span>,150"

假设字符串会有所不同,我仍然希望将第 4、第 5 和第 6 个数字包装在 <span> 标签中。

"$61,0<span>0</span><span>2</span>.<span>1</span>2" == "$61,002.12"

如何使用Javascript/jQuery实现这一点?

我会使用带有替换函数的正则表达式,根据数字的"索引",它被包装在<span>标签中。(不是真正的索引,而是该数字的当前位数)

$("div").html(function(_, old) {
  var i = 0;
  return old.replace(/'d/g, function(num) {
    i++;
    return i >= 4 && i <= 6 ? "<span>" + num + "</span>" : num;
  });
});
span { font-weight: bold }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>$116,023,150</div>
<div>$61,002.12</div>