function fontChange() { var targetDiv = document.getElementsByTagName("div")[0]; var pattern = document.getElementById("pattern"); var targetStr = targetDiv.innerText || targetDiv.textContent; var reg = new RegExp(pattern.value, "g");
var result = targetStr.replace(reg, function(a, b, c, d) { return "<span style='color:blue'>" + a + "</span>"; });
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <title>Insert title here</title> <script type="text/javascript"> function fontChange() { var targetDiv = document.getElementsByTagName("div")[0]; var pattern = document.getElementById("pattern"); var targetStr = targetDiv.innerText || targetDiv.textContent;
var reg = new RegExp(toCharPattern(pattern.value), "g");
var result = targetStr.replace(reg, function(a, b, c, d) { return "<span style='color:blue'>" + a + "</span>"; });
targetDiv.innerHTML = result; } function toCharPattern(target) { var pattern = ""; for (var index = 0; index < target.length; index++) { var c = target.charAt(index); if (pattern.length != 0) { pattern += "|"; } pattern += c; } return pattern; } </script> </head> <body> <input id="pattern" onkeyup="fontChange();"> <div>xsvbngvhiuw3465483246hew</div> </body> </html> 这个估计是你想要的效果
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Insert title here</title>
<script type="text/javascript"> function fontChange() {
var targetDiv = document.getElementsByTagName("div")[0];
var pattern = document.getElementById("pattern");
var targetStr = targetDiv.innerText;
var reg = new RegExp(pattern.value, "g");
var result = targetStr.replace(reg, function(a, b, c, d) {
return "<span style='color:blue'>" + a + "</span>";
});
targetDiv.innerHTML = result;
}
</script>
</head>
<body>
<input id="pattern" onkeyup="fontChange();">
<div>xsvbngvhiuw3465483246hew</div>
</body>
</html>
首先FF无效,
IE下错误也很多。
其次首先输入字母在输入数字,2个都变无色。
还有输入2个以上就没法变色了。
var targetDiv = document.getElementsByTagName("div")[0];
var pattern = document.getElementById("pattern");
var targetStr = targetDiv.innerText || targetDiv.textContent;
var reg = new RegExp(pattern.value, "g");
var result = targetStr.replace(reg, function(a, b, c, d) {
return "<span style='color:blue'>" + a + "</span>";
});
targetDiv.innerHTML = result;
}
FF无效的问题解决了。我的想法是,相同的一组字符串,变色。你可能想的是输入a4,那么abcd4中,a和4变色。而我a4是不变色的,输入ab才变色。
既然方法有了,你照着改下就行
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Insert title here</title>
<script type="text/javascript"> function fontChange() {
var targetDiv = document.getElementsByTagName("div")[0];
var pattern = document.getElementById("pattern");
var targetStr = targetDiv.innerText || targetDiv.textContent;
var reg = new RegExp(toCharPattern(pattern.value), "g");
var result = targetStr.replace(reg, function(a, b, c, d) {
return "<span style='color:blue'>" + a + "</span>";
});
targetDiv.innerHTML = result;
} function toCharPattern(target) {
var pattern = "";
for (var index = 0; index < target.length; index++) {
var c = target.charAt(index);
if (pattern.length != 0) {
pattern += "|";
}
pattern += c;
}
return pattern;
}
</script>
</head>
<body>
<input id="pattern" onkeyup="fontChange();">
<div>xsvbngvhiuw3465483246hew</div>
</body>
</html>
这个估计是你想要的效果