这个答案中有一个很好的方法span
可以为页面中的每个数字添加一个。
var regex = /(\d+)/,
replacement = '<span>$1</span>';
function replaceText(el) {
if (el.nodeType === 3) {
if (regex.test(el.data)) {
var temp_div = document.createElement('div');
temp_div.innerHTML = el.data.replace(regex, replacement);
var nodes = temp_div.childNodes;
while (nodes[0]) {
el.parentNode.insertBefore(nodes[0],el);
}
el.parentNode.removeChild(el);
}
} else if (el.nodeType === 1) {
for (var i = 0; i < el.childNodes.length; i++) {
replaceText(el.childNodes[i]);
}
}
}
replaceText(document.body);
是否可以在span
数字的每三个数字上添加一个?我的意思是,不使用 Lettering.js。
编辑
@thg435 已经回答了这个问题,但我发现他的第二个正则表达式/\d(?=\d\d(\d{3})*\b
不适用于我正在研究的阿拉伯数字。(阿拉伯数字从“٠”开始到“٩”,在正则表达式中可以引用为 [٠-٩]。)问题可能出\b
在第二个正则表达式的末尾。
此外,作为我正在尝试/希望实现的示例,١٢٣٤
应该变成١<span>٢</span>٣٤
.