大家帮我看看这段正则表达式错在哪里了 var patn=/\^{(\w)*\}$/g去试下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script>var str = "{name=name_1&vo=vo_1&value=vo_1}{name=name_2&vo=vo_2&value=vo_2}{name=name_3&vo=vo_3&value=vo_3}{name=name_4&vo=vo_4&value=vo_4}"; var lines = str.match( /\{(.*?)\}/ig); for(var i=0;i<lines.length;i++){ alert(lines[i]);}</script> patn.exec(str)这个是返回数组的 <script type="text/javascript"> var str = "{name=name_1&vo=vo_1&value=vo_1}{name=name_2&vo=vo_2&value=vo_2}{name=name_3&vo=vo_3&value=vo_3}{name=name_4&vo=vo_4&value=vo_4}"; var patn = /\{(.*?)\}/ig; var lines = str.match(patn); for(var i=0;i<lines.length;i++){if(i==0){ a=lines[i]; } else{a=a+','+lines[i]}}document.write(a)</script> 这样自己重新组合成一个数组patn.exec(str)这个虽然返回的是一个数组,但你写的正则他返回了{name=name_1&vo=vo_1&value=vo_1},name=name_1&vo=vo_1&value=vo_1 这个 如果你用patn.exec(str)这个返回的是{name=name_1&vo=vo_1&value=vo_1},name=name_1&vo=vo_1&value=vo_1,{name=name_2&vo=vo_2&value=vo_2},name=name_2&vo=vo_2&value=vo_2,{name=name_3&vo=vo_3&value=vo_3},name=name_3&vo=vo_3&value=vo_3,{name=name_4&vo=vo_4&value=vo_4},name=name_4&vo=vo_4&value=vo_4这样的话,再利用一个str.replace(patn,"")就好了 var str = '{name=name_1&vo=vo_1&value=vo_1}{name=name_2&vo=vo_2&value=vo_2}{name=name_3&vo=vo_3&value=vo_3}{name=name_4&vo=vo_4&value=vo_4}';alert( str.match(/[^{}]+/g).join('\n'))alert( str.slice(1, -1).split(/\}\{/).join('\n')); var str = "{name=name_1&vo=vo_1&value=vo_1}" +"{name=name_2&vo=vo_2&value=vo_2}" +"{name=name_3&vo=vo_3&value=vo_3}" +"{name=name_4&vo=vo_4&value=vo_4}"; var patn =/[^{}]*(?=})/g; //这个正则会产生空项var lines = str.match(patn); //获取数组lines.sort();//把空项排前面alert(lines)lines.splice(0,lines.length/2)//删除空项,这个就是你需要的数组了alert(lines) 不好意思哈 showbo 结帖的时候没有看到你的回复。 <script type="text/javascript"> var str = "{name=name_1&vo=vo_1&value=vo_1}{name=name_2&vo=vo_2&value=vo_2}{name=name_3&vo=vo_3&value=vo_3}{name=name_4&vo=vo_4&value=vo_4}"; var patn = /\{(.*?)\}/ig; a=str.replace(patn,"$1,")document.write(a)</script> 这个的结果返回的是name=name_1&vo=vo_1&value=vo_1,name=name_2&vo=vo_2&value=vo_2,name=name_3&vo=vo_3&value=vo_3,name=name_4&vo=vo_4&value=vo_4, 简单计算机的编写 dialogArguments.insertHTML()使用时为什么加http?怎样解决? 关于javascript繁简互转cookies跳转到其他页不能保持问题 淘宝上的一个网页交互效果 WhiteRiver请进,想请教 如何让javascript不弹出新窗口启动QQ程序 框架的超难问题~~~好急啊 javascript自动提交表单的问题 急,大虾们看看 能否使新联接产生的窗口自动最大化?难! javascript!! 三表二级联动菜单,向达人求救! 126邮箱中间那个可以控制两块大小的线的效果怎么弄的?
<script>
var str = "{name=name_1&vo=vo_1&value=vo_1}{name=name_2&vo=vo_2&value=vo_2}{name=name_3&vo=vo_3&value=vo_3}{name=name_4&vo=vo_4&value=vo_4}";
var lines = str.match( /\{(.*?)\}/ig);
for(var i=0;i<lines.length;i++)
{
alert(lines[i]);
}
</script>
这个是返回数组的
var str = "{name=name_1&vo=vo_1&value=vo_1}{name=name_2&vo=vo_2&value=vo_2}{name=name_3&vo=vo_3&value=vo_3}{name=name_4&vo=vo_4&value=vo_4}";
var patn = /\{(.*?)\}/ig;
var lines = str.match(patn);
for(var i=0;i<lines.length;i++)
{
if(i==0){
a=lines[i];
}
else{a=a+','+lines[i]}
}
document.write(a)
</script>
这样自己重新组合成一个数组
patn.exec(str)这个虽然返回的是一个数组,但你写的正则他返回了{name=name_1&vo=vo_1&value=vo_1},name=name_1&vo=vo_1&value=vo_1
这个
{name=name_1&vo=vo_1&value=vo_1},name=name_1&vo=vo_1&value=vo_1,{name=name_2&vo=vo_2&value=vo_2},name=name_2&vo=vo_2&value=vo_2,{name=name_3&vo=vo_3&value=vo_3},name=name_3&vo=vo_3&value=vo_3,{name=name_4&vo=vo_4&value=vo_4},name=name_4&vo=vo_4&value=vo_4
这样的话,再利用一个str.replace(patn,"")就好了
alert(
str.match(/[^{}]+/g).join('\n')
)
alert(
str.slice(1, -1).split(/\}\{/).join('\n')
);
+"{name=name_2&vo=vo_2&value=vo_2}"
+"{name=name_3&vo=vo_3&value=vo_3}"
+"{name=name_4&vo=vo_4&value=vo_4}";
var patn =/[^{}]*(?=})/g; //这个正则会产生空项
var lines = str.match(patn); //获取数组
lines.sort();//把空项排前面
alert(lines)
lines.splice(0,lines.length/2)//删除空项,这个就是你需要的数组了
alert(lines)
var str = "{name=name_1&vo=vo_1&value=vo_1}{name=name_2&vo=vo_2&value=vo_2}{name=name_3&vo=vo_3&value=vo_3}{name=name_4&vo=vo_4&value=vo_4}";
var patn = /\{(.*?)\}/ig;
a=str.replace(patn,"$1,")
document.write(a)
</script>
这个的结果返回的是name=name_1&vo=vo_1&value=vo_1,name=name_2&vo=vo_2&value=vo_2,name=name_3&vo=vo_3&value=vo_3,name=name_4&vo=vo_4&value=vo_4,