用正则查找字符串解决方案

用正则查找字符串功能 :是有个文本框输入正则表达式 如果网页中有匹配的字符就找出来。正则是可以随意输入

用正则查找字符串
功能 :是有个文本框输入正则表达式 如果网页中有匹配的字符就找出来。正则是可以随意输入的,有匹配的就显示出来。

[解决办法]

JScript code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title>Text</title></head><body>    <label for="input">pattern:</label>    <input id="pattern" name="input" type="input" value="\d+"/>    <label for="flags">flags:</label>    <input id="flags" name="flags" type="input" value="g"/>    <input id="search" type="button" value="Search" />     <p>asdflasdjfk21312394293</p>     <div>87dlksdjfa89098239lasdjkf</div>    <script>        var eDoc = document,            ePattern = eDoc.getElementById("pattern"),            eFlags = eDoc.getElementById("flags"),            eSearch = eDoc.getElementById("search");        eSearch.onclick = function(){            var pattern = ePattern.value,                flags = eFlags.value,                reg = new RegExp();            reg.compile(pattern, flags);            console.dir(reg);            searchText(reg);        }        function searchText(reg){            var elems = Array.prototype.slice.call(document.body.getElementsByTagName("*"), 0);                childNodes = null;            for(var i = 0, len = elems.length; i < len; i++){                childNodes = elems[i].childNodes;                if(childNodes.length === 1 && childNodes[0].nodeType === 3){                    elems[i].innerHTML = childNodes[0].nodeValue.replace(reg, function(arg){                        return "<span style='color: red'>" + arg + "</span>";                    });                }            }        }    </script> </body></html>