0
有一個很好的方法in this answer用於將span
添加到頁面中的每個數字。向第n位數字添加類
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已經回答了這個問題,但我dicovered,他的第二個正則表達式/\d(?=\d\d(\d{3})*\b
不上阿拉伯數字,這我正在工作。 (阿拉伯數字從「0」開始到「9」,並且可以在正則表達式中作爲[0-9])。問題可能出在\b
在第二個正則表達式的末尾。
此外,作爲我正在嘗試/希望實現的一個示例,١٢٣٤
應該變成١<span>٢</span>٣٤
。
謝謝,尤其是正則表達式。但是,正如我所提到的,這是處理數字,所以應該從右側選擇數字。任何想法? – Iryn 2013-04-26 07:53:51
@Iryn:已更新。 – georg 2013-04-26 08:05:34
你已經回答了這個問題,所以我會把它標記爲答案。只有一個缺點:我不是在處理英文數字,而是阿拉伯數字,而且似乎這個正則表達式不適用於他們。你介意告訴我該怎麼處理?字符範圍是[0-9]。 – Iryn 2013-04-26 09:10:51