Javascript正则表达式的问题
需求是这样的,比如有下面这样的字符串,注意,就是一个字符串[{a:1,b:2,{id:4}},{a:2,b:3,{id:5}},{a:4,b:4,{id:6}}]想用一个...
需求是这样的,比如有下面这样的字符串,注意,就是一个字符串
[{a:1,b:2,{id:4}},
{a:2,b:3,{id:5}},
{a:4, b:4, {id:6}}]
想用一个正则表达式,将这个字符串变成一个数组,每个子元素就是类似
{a:1,b:2,{id:4}}这样的完整的一项的
最好有给下示例代码,谢谢了 展开
[{a:1,b:2,{id:4}},
{a:2,b:3,{id:5}},
{a:4, b:4, {id:6}}]
想用一个正则表达式,将这个字符串变成一个数组,每个子元素就是类似
{a:1,b:2,{id:4}}这样的完整的一项的
最好有给下示例代码,谢谢了 展开
展开全部
var str="[{a:1,b:2,{id:4}}, {a:1,b:2,{id:2}}, {a:1,b:2,{id:3}}]";
//正则获取
var reg=/\{.+?\}\}/g;
var arr=str.match(reg);
//其实str这个字符串就是一个数组形式的字符串 所以用eval()函数运算一下应该就能得到一个数组
var arr2=eval(str);
//正则获取
var reg=/\{.+?\}\}/g;
var arr=str.match(reg);
//其实str这个字符串就是一个数组形式的字符串 所以用eval()函数运算一下应该就能得到一个数组
var arr2=eval(str);
追问
var reg=/\{.+?\}\}/g;
我知道g是全局,我想请你给我解释下 前半段的意思
追答
前半段的意思就是匹配“{a:2,b:3,{id:5}}”这样的模式:
\{.+?\}\}
\{ 匹配一个前大括号(大括号在正则中属于元字符,所以加反斜杠以转义)
.+? 匹配一个以上的任意字符(非贪婪捕获)
\}\} 匹配两个后大括号(反斜杠做转义之用)
展开全部
如果不用正则,你可以试试
var arr = [{a:1,b:2,c:{id:4}}, {a:2,b:3,c:{id:5}}, {a:2,b:3,c:{id:6}}];
或者
var arr = new Array({a:1,b:2,c:{id:4}}, {a:2,b:3,c:{id:5}},, {a:2,b:3,c:{id:6}});
var arr = [{a:1,b:2,c:{id:4}}, {a:2,b:3,c:{id:5}}, {a:2,b:3,c:{id:6}}];
或者
var arr = new Array({a:1,b:2,c:{id:4}}, {a:2,b:3,c:{id:5}},, {a:2,b:3,c:{id:6}});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<script type='text/javascript'>
var str = "[{a:1,b:2,{id:4}}, {a:1,b:2,{id:2}}, {a:1,b:2,{id:3}}]";
var reStr = "(\{[^\}]*\}\})[, ]*(\{[^\}]*\}\})[, ]*(\{[^\}]*\}\})";
var re = new RegExp(reStr);
result = re.exec(str)
var arr = [];
for (i = result.index; i < result.length; i++) {
arr.push(result[i]);
}
alert(arr);
</script>
var str = "[{a:1,b:2,{id:4}}, {a:1,b:2,{id:2}}, {a:1,b:2,{id:3}}]";
var reStr = "(\{[^\}]*\}\})[, ]*(\{[^\}]*\}\})[, ]*(\{[^\}]*\}\})";
var re = new RegExp(reStr);
result = re.exec(str)
var arr = [];
for (i = result.index; i < result.length; i++) {
arr.push(result[i]);
}
alert(arr);
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询