RGB
233,123,33のような文字を見つけたら、対応する色を表示する。
/(?:(?:[1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])(?:(?!\d)|,)){3}/が、カンマで区切られた0〜255の数字三つにマッチする正規表現。
document.normalize(); var span = document.createElement('span'), xp = document.evaluate('//text()', document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); span.appendChild(document.createTextNode('■')); for (var i = 0; i < xp.snapshotLength; ++i) { var node = xp.snapshotItem(i), df = document.createDocumentFragment(), m, text = node.nodeValue; while (m = /(?:(?:[1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])(?:(?!\d)|,)){3}/.exec(text)) { df.appendChild(document.createTextNode(RegExp.leftContext)); df.appendChild(span.cloneNode(true)).style.color = 'rgb(' + m[0] + ')'; df.appendChild(document.createTextNode('(' + m[0] + ')')); text = RegExp.rightContext; } if (text == node.nodeValue) continue; df.appendChild(document.createTextNode(text)); node.parentNode.replaceChild(df, node); }