var json1 = "{a:1,b:2,c,d}"; var json2 = "{a:1,b:2}";function fn(str){ var o = null; try{ o = eval("(" + str + ")"); }catch(e){} return o == null; }alert(fn(json1)); alert(fn(json2));
var json1 = "{a:1,b:2,c,d}"; var json2 = "{a:1,b:2}";function fn(str){ var o = null; try{ o = eval("(" + str + ")"); }catch(e){} return typeof o == "object" && o != null; }alert(fn(json1)); alert(fn(json2));alert(fn(json1)); alert(fn(json2));
var json2 = "{a:1,b:2}";function fn(str){
var o = null;
try{
o = eval("(" + str + ")");
}catch(e){}
return o == null;
}alert(fn(json1));
alert(fn(json2));
var json2 = "{a:1,b:2}";function fn(str){
var o = null;
try{
o = eval("(" + str + ")");
}catch(e){}
return typeof o == "object" && o != null;
}alert(fn(json1));
alert(fn(json2));alert(fn(json1));
alert(fn(json2));
(
"(\\.|[^"\\\n\r])*?"
|
[,:{}\[\]0-9.\-+Eaeflnr-u \u\r\t]
)+?
$我给你拆分开了 剩下的就是枚举和套用你所学的正则基础语法来解释了~
r-u -> r、s、t、u
实际就是包含这些字母:E、a、e、f、l、n、r、s、t、u
大小写的E,数字是科学计数法是用到,如:1e2
其他就是:false、true、null可以用到。也就是标准的json数据,处理字符串外,还可以包含:number、boolean和空对象!
请参考:http://www.json.org/json-zh.html