求一个可以去掉字符串中任何不包含<p>、<P>、<\p>、<\P>等标签的所有其他标签的正则表达式。
我开始是用replace(\/<[^(p|P)]+/>\,"");但是对下面这个字符串<p><strong>sdfjsldkjglskdjfls</strong></p>的操作结果却是<p></p> 请问这是怎么回事
我开始是用replace(\/<[^(p|P)]+/>\,"");但是对下面这个字符串<p><strong>sdfjsldkjglskdjfls</strong></p>的操作结果却是<p></p> 请问这是怎么回事
//try it.
var regex=/<\/?p[^>]*>/ig;
var str_1='<p> <strong>sdfjsldkjglskdjfls </strong> </p>';
var str_2='<p>sdfjsldkjglskdjfls</p>';
var str_3='<p>sdfjsldkjglskdjfls<br />dddddddddddddddddddd</p>';
var str_4='<p><div>sdfjsldkjglskdjfls</div><br /><div><span>dddddddddddddddddddd</span></div></p>';
var str_5='<div>sdfjsldkjglskdjfls</div><br /><div><span>dddddddddddddddddddd</span></div>';
function Rep(temp) {
if(/<[pP]>(.*)<\/[pP]>/.test(temp)) {
var tmp = RegExp.$1;
tmp = tmp.replace(/<[^>]*>/g,"");
return "<p>"+tmp+"</p>";
}
else return "";
}alert("str_1:\t"+Rep(str_1)+"\nstr_2:\t"+Rep(str_2)+"\nstr_3:\t"+Rep(str_3)+"\nstr_4:\t"+Rep(str_4)+"\nstr_5:\t"+Rep(str_5))
</script>
我开始是用replace(\/ <[^(p|P)]+/>\,"");但是对下面这个字符串 <p> <strong>sdfjsldkjglskdjfls </strong> </p>的操作结果却是 <p> </p> 请问这是怎么回事-->
<html>
<script>
var str_1='<p> <strong>sdfjsldkjglskdjfls </strong> </p>';
var str_2='<p>sdfjsldkjglskdjfls</p>';
var str_3='<p>sdfjsldkjglskdjfls<br />dddddddddddddddddddd</p>';
var str_4='<p><div>sdfjsldkjglskdjfls</div><br /><div><span>dddddddddddddddddddd</span></div></p>';
var str_5='<div>sdfjsldkjglskdjfls</div><br /><div><span>dddddddddddddddddddd</span></div>';function Rep(temp) {
if(/<p>(.*)<\/p>/gi.test(temp)) {
var tmp = RegExp.$1;
tmp = tmp.replace(/<[^>]*>/g,"");
return "<p>"+tmp+"</p>";
}
else return "";
}alert("str_1:\t"+Rep(str_1)+"\nstr_2:\t"+Rep(str_2)+"\nstr_3:\t"+Rep(str_3)+"\nstr_4:\t"+Rep(str_4)+"\nstr_5:\t"+Rep(str_5))
</script>
<html>