我正在做一个REGEXP工具,它接受文本输入并在div中显示结果。 我用< b>匹配< / b>替换匹配项当显示结果。 如果它匹配原始文本它工作正常,但问题是插入HTML代码
我想替换除< b>之外的所有标签用html实体标记,怎么能实现呢?
var regExpTool = {
makeRegexp: function(pattern, opts){
var regexp = new RegExp(pattern, opts);
return regexp;
},
createResults: function(pattern, string, opts){
var res = string.replace(this.makeRegexp(pattern, opts), "<b>$&</b>")
results.style.display = "block";
text.style.display = "none";
results.innerHTML = res;
}
}
答案 0 :(得分:0)
也许你的代码应该更像:
var win = window, doc = document, bod = doc.getElementsByTagName('body')[0];
function E(e){
return doc.getElementById(e);
}
function regExpTool(text, outputElement){
this.makeBold = function(options){
outputElement.innerHTML = text.replace(new RegExp('^(<.+>)*('+text+')(<\/.+>)*$', options), '<b>$2</b>')
outputElement.style.display = 'block';
};
}
new regExpTool('<div>now</div>', E('wow')).makeBold();
请注意,您的makeRegexp
方法没有理由。
这是http://jsfiddle.net/PHPglue/FjEdg/2/。
它不适用于自闭标签。