如何使用javascript标记数字
问题描述:
我需要在HTML页面上标记数字。我知道如何标记数字,但我怎样才能识别十进制数字?我需要标记范围内的每个数字。像这样:[范围1-3]如何使用javascript标记数字
This is number 1, this is number 1.8 and this is 8.2. It should also mark number 3.
如何使用javascript(无jQuery)标记它?
谢谢,彼得
答
您可以使用正则表达式来更改数字。
var node = document.getElementById('text');
node.innerHTML = node.innerHTML.replace(/(\d+(\.\d+)?)+/g, function (s) {
return s >= 1 && s <= 3 ? '<strong>' + s + '</strong>' : s;
});
<div id="text">This is number 1, this is number 1.8 and this is 8.2. It should also mark number 3.</div>
答
你可以分割字符串,找到号码符合您的条件在循环
var div = document.getElementById("div");
div.innerHTML = div.innerHTML.split(/\s/)
.map(v => {
if (!isNaN(parseFloat(v)) && parseFloat(v) <= 3) {
var res = parseFloat(v);
var rest = new RegExp(res, "g");
return "<strong>" + res + "</strong>" + v.replace(rest, "");
}
return v;
}).join(" ");
<div id="div">
This is number 1, this is number 1.8 and this is 8.2. It should also mark number 3.
</div>
+0
谢谢!有用!但是Nina Scholz速度更快,代码看起来更好,所以我将她的答案标记为最好。但是,这也适用,所以thx :) – SoptikHa
如果你的文字就像是'FOO 1.2.3.4 .5酒吧? – georg