日期:2014-05-16  浏览次数:20472 次

200分求一正则表达式!


用正则表达式,从html中匹配指定id的html元素,并设置其属性值。

如下:

<img id="img1" src="" /> //查找id为img1的img,并且设置它的src属性值
<div id="div1" class=""></div> //查找id为div1的div,并且设置它的class属性值


谢谢回复!

------解决方案--------------------
呃,这个东东要正则做什么??
HTML code
<script type="text/javascript">
function AppendAttr(a,b){
    var o=document.getElementById(a);
    for(name in b){
        o.setAttribute(name,b[name]);
    }
}
AppendAttr('test',{"class":'aaa',"src":'bbb'});
alert(document.getElementById('a').innerHTML)
</script>
<div id="a">
<div id="test"></div>
</div>

------解决方案--------------------
楼上正解
------解决方案--------------------
那说下你的应用环境呀,否则谁知道怎么帮你呀??
------解决方案--------------------
设置其属性值,这要操作DOM了,用正则表达式不可能做吧
------解决方案--------------------
flowplayer??视频??
你基于web的,为什么不能用js?搞不清楚你具体的需求

如果你是需要在后台中完成这些操作,试试转化成xml,用节点看看能不能操作。再要不然后台写正则匹配指定的字符串,然后修改吧。就不叫操作html了,纯字符串操作了
------解决方案--------------------
正则表达式,只是等于一个规则,你不用js去应用这个规则,怎么让正则起作用的
刚写了好久,发现还是js写的,蛋疼了~~
JScript code
var width_1 = "width=\"10px\"";//要添加的属性
    var test_value = document.getElementById('a').value;  //我测试用的标签
    var reg = /\<[^\<]*(id\s*\=\s*(\"div\")|(\'div\')|(div]))[^\<]*[\/]?\>/gi;
    test_value = test_value.replace(reg,function($1,$2){
        alert($1);
        alert($2);
        return $1.replace($2,$2 + " " +width_1);
    });
    alert("aaa="+test_value);

------解决方案--------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function test(x){
var a=document.body.innerHTML;
var reg=new RegExp("<.*?id=\""+x+"\".*?>");
a=a.match(reg);
a[0]=a[0].replace("src=\"\"","src=\"1.jpg\"");
document.body.innerHTML=a;
alert(a);
}
window.onload=function(){test("img1");};
</script>
</head>

<body>
<img id="img1" src="" />
<div id="div1" class=""></div>
</body>
</html>
比较麻烦 你替换下 上边会把document.body的内容完全覆盖掉 而且也不可靠的样子 不能操作dom吗?
------解决方案--------------------
不能用js,那只好用xml方式简单点吧
html是xml格式的,后台把它当xml文件处理试试,或者把里面字符串取出来,做成一个xml对象,应该可以用xml节点的操作方式,比用正则去找字符串总要方便些吧?
------解决方案--------------------
不能用dom就用jquery吧
------解决方案--------------------
为什么不能用jquery?上代码。估计你设置不当所以没起作用。
------解决方案--------------------
用正则来获取dom?不可能吧?
------解决方案--------------------
9楼10楼也是dom操作啊
------解决方案--------------------