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)){}
有见过上面正则表达式的仙人指点一下吧。看官方文档也是迷迷糊糊,后面来一个这样的表达式,这是书上修改以后的。
就这么多分了,全送上了。 展开
有见过上面正则表达式的仙人指点一下吧。看官方文档也是迷迷糊糊,后面来一个这样的表达式,这是书上修改以后的。
就这么多分了,全送上了。 展开
展开全部
这个解析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\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应该是对数的符号,但另外几个不是多余的吗
追答
你确定这代码没改过,并且是高手写的?
或者他只是为了适应自己的网站
正则里应该没有对数吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询