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

if(/^("(\\.|[^\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u\n\r\t])+?$/.test(s)){}有见过上面正则表达式的... if(/^("(\\.|[^\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(s)){}
有见过上面正则表达式的仙人指点一下吧。看官方文档也是迷迷糊糊,后面来一个这样的表达式,这是书上修改以后的。
就这么多分了,全送上了。
展开
 我来答
miniappcy3tv95eaedrf
2011-03-21 · TA获得超过2363个赞
知道大有可为答主
回答量:1909
采纳率:92%
帮助的人:1121万
展开全部
这个解析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]
它匹配一个单个字符,这个字符可以是 ,,:,{,},[,],数字,除 "\n" 之外的任何单个字符,-,+,E,a,e,f,l,n,r-u之间的字符,回车,换行,制表符,
就这些
结合起来,它其实把一个json拆分成若干段,字符串单独成一段,其它的都是单个字符成段(回车,换行,:,{,}等)
更多追问追答
追问
纳闷,既然.匹配了除\n外的任何单个字符,为什么还要加\-+Eaeflnr-u,E和e应该是对数的符号,但另外几个不是多余的吗
追答
你确定这代码没改过,并且是高手写的?
或者他只是为了适应自己的网站
正则里应该没有对数吧
ChenJianCHE
2011-03-21 · TA获得超过201个赞
知道小有建树答主
回答量:245
采纳率:100%
帮助的人:236万
展开全部
没用过正则解析JSON
一般不都是 var object = eval('('+json+')'); 这样吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式