【www.bbyears.com--正则表达式】
删除除了、
、
之外所有的标签。子虚乌有给出代码中关键的一句:
o.innerHTML.replace(/(?(?!br|p|img)[^>/]*)/?>/gi,""); 刚开始没反应过来,后来才想起来,这个正则不用区分起始和结束标签。
?(?!br|p|img)
匹配除了保护标签外标签的起始标签或者是结束标签的一部分。
[^>/]*
匹配到>或者/就结束。
/?>
起始标签或者结束标签的结尾。
其它问题
正则表达式通过变量传递后,被转义的困惑。如何避免值在赋给JS变量的过程中被转义
按钮一例子中:t代表制表符,那么替换以后t应该成为一个制表符而不是还是两个代码字母。如果说都不能转义,而为什么$1却完成了转义。
<script language=JavaScript>
//所有行替换
function replacewrd(x,y)
{
var str=new Array();
var str=txt.innerText.split("n");
var tmp="";
for(i=0;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
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>
</script>
实例
//所有行替换
function replacewrd(x,y)
{
y = y.replace(/\t/g,"t"); // 这里转下
var str=new Array();
}
实例
代码如下<script language="JavaScript">
function a(y)
{alert(y);}
</script>