求一正则 将一个HTML中的元素(input,a,div,span,select这些即可)都查找出来,然后全部按照顺序,都给加上id的属性。id ="1",id="2",这样一个个加即可。需要注意的是,1,HTML中原本有ID的需要删除掉。2,元素不一定都是小写,也可能是大写,也可能是混在的,比如input,可能是INPUT,可能是Input,可能是INput等等。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用正则的目的,就是不要有循环。用dom对象,实现不了吧。 HTML是通过rose生成的,动则上万行,而且要求批量处理,所以效率更重要。 你这个真不是单纯的正则能解决的,为什么呢因为正则不会知道,现在找到的内容,是所有内容中的第几个(当然你可以说用一个全局变量,但是那不属于正则的范畴),但是这种处理方式反而是dom最擅长的。另外如果单纯从效率讲的话,dom初次分析和正则完全匹配一个正则的时间是一致,但是如果要多次处理不同的内容的话,那么dom的优势就体现出来了,正则只能从头再来! 额。如果我有这么一个标签<jeechang></jeechang>那么,是加ID呢还是不加ID呢其实我想说的是,如果论效率循环不比正则慢能实现的易用性和可靠性,正则也不占优势唯一好处就是,看代码的时候少了不少行代码。另外,其实那不是循环,是递归~ +++用DOM的W3C标准方法去做楼主的要求会事半功倍!你要匹配的可不是简单的几个元素,而是所有input,a,div,span,select。所以个人感觉:如果一定要用正则来完成的话,那结果也许就是事倍功半了!建议不要为了正则而正则! 回 hnxxwyq关于 现在找到的内容,是所有内容中的第几个,这个问题可以解决。因为ID是从1开始,依次累加的,可以通过function(){i++....来实现。 如果是<span>asdfasd<span>fdsgfsdg<span>dafsdaf</span>adsfa<span>sdafasdfa</span></span></span>这样层层嵌套的情况 用一条正则肯定做不到吧只能用dom的递归才能实现 回 cj205:<jeechang></jeechang>这样的CASE不用考虑,input,a,div,span,select这些即可。回 shuixiya1999:\<(span|SPAN)就可以吧。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Untitled Document</title> <script type="text/javascript"> window.onload = function(){ var html = document.body; var reg = /(<(?!\/)\w+[^>]*?)(id=[\S]+)?([^>]*>)/ig; var i = 1; html.innerHTML = html.innerHTML.replace(reg,function(a,b,c,d){ return b + ' id=' + i++ + d; }); alert(html.innerHTML); }; </script> </head> <body> <div> <div> <span id="test"></span> <span></span> </div> <div> </div> </div> </body></html> TO :cj205VERY NICE!!!十分感谢! 在服务器发布含有javascript脚本网页,客户端使用不正常 赶紧来看看吧,来者有分 求非absolute的div的坐标 很简单的js,在线等,马上给分 触屏版web,绑定swipe后页面滚动失效的问题。 请问IFRAME的滚动条颜色怎么改变? 请问如何屏蔽IE后退键? 如何能让菜单自动消失?高手帮忙!! 如何捕获ActiveX控件的事件?(续) 求大神! html js 倒数器 时时差 和取值 代码 求一段JS代码。 请教JS中的一种变量
动则上万行,而且要求批量处理,所以效率更重要。
你这个真不是单纯的正则能解决的,为什么呢因为正则不会知道,现在找到的内容,是所有内容中的第几个(当然你可以说用一个全局变量,但是那不属于正则的范畴),但是这种处理方式反而是dom最擅长的。另外如果单纯从效率讲的话,dom初次分析和正则完全匹配一个正则的时间是一致,但是如果要多次处理不同的内容的话,那么dom的优势就体现出来了,正则只能从头再来!
<jeechang></jeechang>
那么,是加ID呢还是不加ID呢其实我想说的是,如果论效率循环不比正则慢
能实现的易用性和可靠性,正则也不占优势
唯一好处就是,看代码的时候少了不少行代码。另外,其实那不是循环,是递归~
这个问题可以解决。因为ID是从1开始,依次累加的,可以通过function(){i++....来实现。
<jeechang></jeechang>这样的CASE不用考虑,input,a,div,span,select这些即可。回 shuixiya1999:
\<(span|SPAN)就可以吧。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<script type="text/javascript">
window.onload = function(){
var html = document.body;
var reg = /(<(?!\/)\w+[^>]*?)(id=[\S]+)?([^>]*>)/ig;
var i = 1;
html.innerHTML = html.innerHTML.replace(reg,function(a,b,c,d){
return b + ' id=' + i++ + d;
});
alert(html.innerHTML);
};
</script>
</head>
<body>
<div>
<div>
<span id="test"></span>
<span></span>
</div>
<div>
</div>
</div>
</body>
</html>