javascript解析json的正则表达式,完全看不明白,求你了!

[复制链接]
查看11 | 回复2 | 2011-3-21 07:41:34 | 显示全部楼层 |阅读模式
if(/^("(\\.|[^\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(s)){}
有见过上面正则表达式的仙人指点一下吧。看官方文档也是迷迷糊糊,后面来一个这样的表达式,这是书上修改以后的。
就这么多分了,全送上了。

回复

使用道具 举报

千问 | 2011-3-21 07:41:34 | 显示全部楼层
这个解析json并不通用首先这个串分成两部分,看中间的或符号(|)"(\\.|[^\\\n\r])*?"和[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]先分解"(\\.|[^\\\n\r])*?" 它匹配一个双引号的字符串,两边引号不说了括号内一个“|”又分成两段 “\\.“匹配一个转义字符比如js字符串里的\n,\r,\',\"等。[^\\\n\r]匹配一个非\,回车换行的字符 其实它就是js里字符串的规则---不包含回车换行,回车换行用 \n\r表示,\后面跟一个字符表示转义其次看[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]它匹配一个单个字符,这个字符可以是 ,,:,{,},[,
回复

使用道具 举报

千问 | 2011-3-21 07:41:34 | 显示全部楼层
没用过正则解析JSON一般不都是 var object = eval('('+json+')');这样吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行