求JS正则高手,把一个字符串替换成空串,50分

.aspx网页只要一using AjaxPro; 并Utility.RegisterTypeForAjax(typeof())后,百度的编辑器源代码就会多了这个

<p extend="function(o) {
return Object.extend.apply(this, [this, o]);
}">
aaa
</p>

怎么把p标签里的那个
extend="function(o) {
return Object.extend.apply(this, [this, o]);
}"

替换成""

凡是html标签都会被添加上那些东西,无奈找不到原因,只能用JS在获取数据的时候把他们替换成空字符,
最新回答
听说网名太长会被狗咬

2024-12-02 00:06:39

正则:
str.replace(/(<[a-z]+.*?)extend=\"function\(o\)\s*\{[\s\S]+?\}\"(.*>)/g, "$1$2");

代码经过测试,下面是测试代码:

<!doctype html
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
</head>
<body>
<textarea id="fds" style="width:600px; height:500px">
<p extend="function(o) {
return Object.extend.apply(this, [this, o]);
}">
aaa
</p>
<span id="yes" extend="function(o) {
return Object.extend.apply(this, [this, o]);
}" class="fds">
aaa
</span>
<p style="fdsa" extend="function(o) {
return Object.extend.apply(this, [this, o]);
}" style="fdsa">
aaa
</p>
<br extend="function(o) {
return Object.extend.apply(this, [this, o]);
}"/>
</textarea>
<input type="button" value="替换!!!" onClick="fdsa()" />
<script type="text/javascript">
function fdsa(){
var str = document.getElementById("fds").innerText;
str = str.replace(/(<[a-z]+.*?)extend=\"function\(o\)\s*\{[\s\S]+?\}\"(.*>)/g, "$1$2");
alert(str);
}
</script>
</body>
</html>
甜度超标。

2024-12-02 00:16:00

var str = "<p extend=\"function(o) {return Object.extend.apply(this, [this, o]);}\"> aaa</p>";
alert(str.replace(/<p.*?>/g,"<p>"));

.*?中的?号很重要,楼上的没有加这个会把 aaa</p>也给吃掉了。
追问
是所有HTML 标签都会那样,比如
浅夏忆梦

2024-12-02 00:12:13

s=s.replace(/\sextend=\"[\r\n]{0,}.*?[\r\n]{0,}.*?[\r\n]{0,}\"/ig,'');

亲测
把阳光剪成窗纸贴在心口

2024-12-02 00:12:58

var delyouStr=function(str){
return str.replace(/extend=[^>]*/ig,'');
}

使用方法:

把返回在使用delyouStr(ajax返回的数据)进行处理就可以了
追问
这样的话的确可行,不过如果extend 之后还有其他属性也会被替换掉    比如style="color:red" 也会替换掉
追答
改成这样即OK:
var delyouStr=function(str){
return str.replace(/extend=[^\}]*\}/ig,'');
}
晚安旧恋人

2024-12-02 00:11:27

'/<p\s(.*)>/Us'
追问
这样会把   里面的style样式也替换掉