[发明专利]JavaScript代码检测方法、装置、设备和存储介质在审
申请号: | 201910846579.6 | 申请日: | 2019-09-09 |
公开(公告)号: | CN110688307A | 公开(公告)日: | 2020-01-14 |
发明(设计)人: | 陈志城 | 申请(专利权)人: | 平安普惠企业管理有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 11321 北京市京大律师事务所 | 代理人: | 刘挽澜 |
地址: | 518027 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 语句 抽象语法树 检测结果 检查规则 正则表达式 自动化脚本 变量设置 标识信息 存储介质 代码检测 对比检测 工具领域 异常通知 遍历 构建 空集 解析 查找 返回 失败 申请 | ||
本申请涉及代码质量工具领域,提供了一种JavaScript代码检测方法、装置、设备和存储介质,方法包括:获取JavaScript代码,并构建JavaScript代码对应的抽象语法树;通过自动化脚本查找JavaScript代码中的检查规则;遍历抽象语法树中的if语句,得到JavaScript代码的if语句;分别对JavaScript代码中每一个if语句中的变量设置标识信息;使用正则表达式以及检查规则对所述JavaScript代码中每一行if语句中的变量进行对比检测,以得到检测结果;若检测结果为失败,则返回空集并发出异常通知。以解决JavaScript代码中存在多个if情况下,异常变量无法解析的问题。
技术领域
本申请涉及代码质量工具领域,尤其涉及一种JavaScript代码检测方法、装 置、设备和存储介质。
背景技术
随着互联网技术的飞速发展,诸如手机、平板电脑、个人电脑等终端日 益普及,各种依赖于终端运行的系统也应运而生,人们不仅在工作和生活中 越来越多地依赖于各种系统,而且对系统可以提供的功能提出越来越高的要 求。伴随着系统的功能的提高与加强,系统的代码的复杂程度也随之增加, 由此导致系统的稳定性和可靠性下降,使得系统在运行过程中可能出现各种 异常状态。为了跟踪和查找系统发生异常的确切位置,通常需要在系统中获 取异常信息,根据异常信息在系统中定位发生异常的变量,以便基于代码实现对异常的变量。
目前JavaScript解析引擎机制,在if语句中存在多个or的情况下,若前面的 判断语句已满足,那解析引擎就不会继续解析后面的条件语句。相关技术中, 在根据异常信息定位发生异常的变量时,需要获取系统在运行中的运行日志, 并利用日志分析工具对运行日志进行分析,在运行日志中定位发生异常的变 量。在获取系统的运行日志时,需要获取可能发生异常的时间段内产生的全 部运行日志,由于系统在运行过程中产生的运行日志的数据量很大,导致在 对运行日志进行分析时产生了大量的工作量,且不能实时定位发生异常的变 量,智能性较低。
发明内容
本申请提供了一种通过封装的页面开发功能的方法,能够解决现有技术 中页面开发效率的过低、无法对版本做快熟迭代的问题。
第一方面,本申请提供一种JavaScript代码检测方法,包括:
获取JavaScript代码,并构建所述JavaScript代码对应的抽象语法树。所述 抽象语法树是通过语法分析器创建。所述语法分析器是指编译器或解释器的 组件,所述语法分析器用于语法检查,并根据所述JavaScript代码中的变量来 构建数据结构。
通过自动化脚本查找JavaScript代码中的检查规则。所述检查规则是指通 过所述变量的适用场景、前提条件、规范种类以及判断标准进行生成用于检 测if语句中异常变量的规则。
通过遍历所述抽象语法树中的if语句,得到所述JavaScript代码的if语句。
分别所述JavaScript代码中每一个if语句中的变量设置标识信息。
使用正则表达式以及所述检查规则对所述JavaScript代码中每一行if语句 中的变量进行对比检测,以得到检测结果。
若所述检测结果为成功,则返回一个数组并更新所述正则表达式对象的 属性和所述正则表达式对象。
或者,若所述检测结果为失败,则返回空集并发出异常通知。
在一些可能的设计中,所述通过遍历所述抽象语法树中的if语句,得到 所述JavaScript代码的if语句,包括:
循环遍历所述抽象语法树的所有对象,若通过Object.name判断与if字符 串相等,并且匹配数组中包含了if,则确定所述JavaScript代码中包含if语句。 所述数组用于存放所述JavaScript代码的状态。所述状态包括代码的属性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安普惠企业管理有限公司,未经平安普惠企业管理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910846579.6/2.html,转载请声明来源钻瓜专利网。