这个正则怎么写

slxliuxingbing 2010-02-26 02:02:05
var s="<div name='apple' class='fruit'> 苹果 </div> <div name='mianbao' class='food'> 面包 </div><div name='banana' class='fruit'>香蕉 </div>"
返回所有name
...全文
124 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangminyanghe 2010-02-27
  • 打赏
  • 举报
回复
其实你直接用document.getElementByTagName("div")也能拿到一个数组吧
倾斜的水瓶座 2010-02-27
  • 打赏
  • 举报
回复
引入Jquery.js

$(document).ready(function(){
var divName;
$("div").each(function(){
divName += $(this).attr("name")
})
document.write(divName);
})


这样就不用正则了
sohighthesky 2010-02-26
  • 打赏
  • 举报
回复
引用 6 楼 slxliuxingbing 的回复:
var reg=/\ <div[^\>]+name=\'(? <name>[^']+)\'/

这个正则直接报错啊

js里不支持命名捕获组
 var s = "<div name='apple' class='fruit'> 苹果 </div> <div name='mianbao' class='food'> 面包 </div> <div name='banana' class='fruit'>香蕉 </div>";
var reg=/<div\s+name\s*?=['"'\s]*(\w+)/ig,res=[],t;
while((t=reg.exec(s))!=null){
res[res.length]=t[1];
}
document.write(res.join("<br/>"));
Inpool 2010-02-26
  • 打赏
  • 举报
回复
var reg = /<.*?name=\'(.+?)\'.*?<\/.+?>/g;
s_liangchao1s 2010-02-26
  • 打赏
  • 举报
回复

var s = "<div name='apple' class='fruit'> 苹果 </div> <div name='mianbao' class='food'> 面包 </div> <div name='banana' class='fruit'>香蕉 </div>";
var reg = /<div[^>]*name\s*=\s*('|")([^'"]*)\1[^>]*>/ig;
var re = arr = [];
while((re = reg.exec(s)) != null) {
arr.push(re[2]);
}
alert(arr)
slxliuxingbing 2010-02-26
  • 打赏
  • 举报
回复
var reg=/\<div[^\>]+name=\'(?<name>[^']+)\'/

这个正则直接报错啊
煊烨 2010-02-26
  • 打赏
  • 举报
回复
引用 3 楼 slxliuxingbing 的回复:
(? <name>[^']+)
这个?是什么意思啊


就是给这个捕捉起个名字 这里的名字是“name”
shan1119 2010-02-26
  • 打赏
  • 举报
回复
    var s=" <div name='apple' class='fruit'> 苹果 </div> <div name='mianbao' class='food'> 面包 </div> <div name='banana' class='fruit'>香蕉 </div>" 
var reg=new RegExp();
var obj=[];
while(s.match(/(<div.*?name\='([^']+)'.*?<\/div>)/)){
obj[obj.length]=RegExp.$2;
s=s.replace(RegExp.$1,"")
}
alert(obj);
slxliuxingbing 2010-02-26
  • 打赏
  • 举报
回复
(?<name>[^']+)
这个?是什么意思啊
煊烨 2010-02-26
  • 打赏
  • 举报
回复

var reg=/\<div[^\>]+name=\'(?<name>[^']+)\'/

前面回复发出来有多余空格了
煊烨 2010-02-26
  • 打赏
  • 举报
回复
\<div[^\>]+name=\'(?<name>[^']+)\'

87,903

社区成员

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

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