龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

正则表达式去除大部分HTML标记js代码

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
正则表达式去除大部分HTML标记js代码 有需要的朋友可参考一下。 删除除了img、br、p之外所有的标签。子虚乌有给出代码中关键的一句: o.innerHTML.replace(/(/?(?!br|p|img)[^/]*)/?/gi,''); 刚开始没
正则表达式去除大部分HTML标记js代码 有需要的朋友可参考一下。

删除除了<img>、<br>、<p>之外所有的标签。子虚乌有给出代码中关键的一句:

 o.innerHTML.replace(/(</?(?!br|p|img)[^>/]*)/?>/gi,''); 刚开始没反应过来,后来才想起来,这个正则不用区分起始和结束标签。

</?(?!br|p|img)

匹配除了保护标签外标签的起始标签或者是结束标签的一部分。

[^>/]*

匹配到>或者/就结束。

/?>

起始标签或者结束标签的结尾。


其它问题


正则表达式通过变量传递后,被转义的困惑。如何避免值在赋给JS变量的过程中被转义


按钮一例子中:t代表制表符,那么替换以后t应该成为一个制表符而不是还是两个代码字母。如果说都不能转义,而为什么$1却完成了转义。

 代码如下
<html>
<head><TITLE>test</TITLE>
<script language=JavaScript>
//所有行替换
function replacewrd(x,y)
{
 var str=new Array();
 var str=txt.innerText.split("n");
 var tmp='';
 for(i=0;i<str.length-1;i++)
 {
 tmp=tmp + str[i].replace(new RegExp(x,"ig"),y) + 'n';
 }
 tmp=tmp + str[i].replace(new RegExp(x,"ig"),y);
 txt.innerText=tmp;
}
function AddPageNum()
{
 var str=new Array();
 var str=txt.innerText.split("n");
 var tmp='';
 for(i=0;i<str.length-1;i++)
 {
 tmp=tmp + str[i].toString().replace(/t(d{1,3})[rn]*$/ig,"($1)t$1n");//textarea的文本换行由rn组成
 }
 tmp=tmp + str[i].toString().replace(/t(d{1,3})[rn]*$/ig,"($1)t$1");//可用[^.]*匹配不可见字符
 txt.innerText=tmp;
}
</script>
</head>
<body>
<div id="tools">
 <input id=oldwrd type="text" value="t(d{1,3})[rn]*$" >
 <input id=p7 type="button" value="按钮一:替换成" onclick="replacewrd(oldwrd.value,newwrd.value);" >
 <input id=newwrd type="text" value="($1)t$1" >
 <br>
 <input id=p9 type="button" value="按钮二:添加(页码)" onclick="AddPageNum();">
</div>
<textarea id=txt rows=25 cols=115>

第一部分早年岁月 3
 第一章建立自信 3
 第二章脱颖而出 17
 第三章掀掉屋顶 21
 第四章在雷达下飞行 29
 第五章逼近大联盟 38
 第六章海阔凭鱼跃 48
第二部分建立哲学观 69
 第七章面对现实与“阳奉阴违” 69
------------------------------
按钮一:企图通过替换,将每一个制表符t后面的页码,复制一份加上括号(),放到制表符前。但是input的value传递到函数中执行起来,t却不会转义为制表符。
按钮二:同样的正则代码直接内置在函数中运行则没问题。
【疑惑】按钮一例子中:t代表制表符,那么替换以后t应该成为一个制表符而不是还是两个代码字母。如果说都不能转义,而为什么$1却完成了转义。
</textarea>
</body>
</script>
</html>


实例

 代码如下

//所有行替换
function replacewrd(x,y)
{       
        y = y.replace(/\t/g,'t'); // 这里转下
        var str=new Array();
}

实例

 代码如下

<script language="JavaScript">
function a(y)
{alert(y);}
</script>
<input id=newwrd type="button" value="($1)t$1" onclick="a(this.value)">
<input id=newwrd type="button" value="($1)t$1" onclick="alert(this.value)">


精彩图集

赞助商链接