高分求一javascript字符串处理函数

hurtzll 2002-12-16 02:02:40
要求:

源串:

var html = 'Info: <img class="blah" onclick="swap()" src="image.gif" alt="My dog"><br>My cat: <img class="blah" onclick="swap()" src="image2.gif" alt="My cat">'

处理后变成:

'Info: <img src="image.gif" alt="My dog"><br>My cat: <img src="image2.gif" alt="My cat">'

也就是能把指定的标签去掉!
...全文
34 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hurtzll 2002-12-16
  • 打赏
  • 举报
回复
i see,thx
flyycyu 2002-12-16
  • 打赏
  • 举报
回复
StringBuffer是编写的javascript中类似于
java里面的StringBuffer类,这个就不发了!
你可以用字符串相加实现!

用法:

html.cleanTag("IMG", ["SRC","ALT"]);

这样就保留了SRC和ALT
freefalcon 2002-12-16
  • 打赏
  • 举报
回复
<script>
var html = 'Info: <img class="blah" onclick="swap()" src="image.gif" alt="My dog"><br>My cat:<img class="blah" onclick="swap()" src="image2.gif" alt="My cat">';
var new_html=html.replace(/(class=.*?\s|onclick=.*?\s)/gi,"");
alert(new_html);
</script>

没有考虑特殊情况,仅以可用为原则
hurtzll 2002-12-16
  • 打赏
  • 举报
回复
to flyycyu:
谢了,怎么用?

还有StringBuffer是javascript的内部对象吗?

能否把函数给全?

再次谢谢!
flyycyu 2002-12-16
  • 打赏
  • 举报
回复
String.prototype.cleanTag = function(tagName, attrList)
{
attrList = attrList.join("|");

var tagCrit = "/<" + tagName + "[^>]*>/i";
eval('var tagExp = ' + tagCrit);

var attrcrit = "/(\\s+(" + attrList + ")\\s*=\\s*(\\w+|[\"][^\"]*[\"]|['][^']*[']))+/i";
eval('var attrexp = ' + attrcrit);

var sr;
var s = this;
var result = new StringBuffer("");
var base = 0;

the process
while ((sr = tagExp.exec(s)) != null)
{
result.a(s.substring(base, sr.index));
//var newTag = sr[0].replace(attrexp, '');
var newTag;
result.a('<');
result.a(tagName);
while ((newTag = attrexp.exec(sr[0])) != null) {
//var newTag = attrexp.exec(sr[0]);
result.a(newTag[0]);
sr[0] = sr[0].substring(newTag.lastIndex);
}
s = s.substring(sr.lastIndex);
result.a('>');
}
result.a(s);
return result.toString();
}

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧