栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

正则表达式以验证JSON

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

正则表达式以验证JSON

是的,可以进行完整的正则表达式验证。

大多数现代正则表达式实现都允许递归正则表达式,该正则表达式可以验证完整的JSON序列化结构。该json.org规范使得它非常简单。

$pcre_regex = '  /  (?(DEFINE)     (?<number>   -? (?= [1-9]|0(?!d) ) d+ (.d+)? ([eE] [+-]? d+)? )         (?<boolean>   true | false | null )     (?<string>    " ([^"\\]* | \\ ["\\bfnrt/] | \\ u [0-9a-f]{4} )* " )     (?<array>     [  (?:  (?&json)  (?: , (?&json)  )*  )?  s* ] )     (?<pair>      s* (?&string) s* : (?&json)  )     (?<object>    {  (?:  (?&pair)  (?: , (?&pair)  )*  )?  s* } )     (?<json>   s* (?: (?&number) | (?&boolean) | (?&string) | (?&array) | (?&object) ) s* )  )  A (?&json) Z  /six   ';

它具有PCRE功能,在PHP中效果很好。应该在Perl中保持不变;并且可以肯定地适用于其他语言。JSON测试用例也成功。

更简单的RFC4627验证

一种更简单的方法是RFC4627第6节中指定的最小一致性检查。但是,它仅用作安全性测试和基本的非有效性预防措施:

  var my_JSON_object = !(/[^,:{}[]0-9.-+Eaeflnr-u nrt]/.test(         text.replace(/"(\.|[^"\])*"/g, ''))) &&     eval('(' + text + ')');


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号