利用Sonar定制自定义JS扫描规则(三)——SSLR JavaScript Toolkit 使用说明
2013-09-14 20:07
435 查看
在上一篇blog中讲了在sonar中如何新增自定义的JS规则,这里面比较难的地方是XPath语句的编写,而要编写正确的XPath语句,首先要拿到语法的AST,下面我们就来介绍如何使用SSLR JavaScript Toolkit 工具来得到源代码的语法树。
首先通过在这里下载SSLR JavaScript Toolkit 工具,下载下来是一个jar包,在cmd窗口使用java -jar sslr-javascript-toolkit-1.3.jar打开这个工具,操作界面如下:
左上方的窗口是用来输入你的源代码,右上方的窗口是来显示你的AST,最下面的窗口是来输入你的XPath规则。
我们现在左上方输入一些简单的javascript代码,然后点击 Parse Source Code按钮,可以得到源代码的语法树:
得到语法树后,我们也可以点击右边窗口的XML页面,得到的是语法树的XML文档。有了XML文档,就可以通过XPath轻松得到你想要的语句了。
举个例子:比如我想得到本地变量名,即var关键字后面的变量名,可以通过XPath的语法来查询。
在最下方的窗口输入XPath语法规则,点击Evaluate XPath按钮,如果语法正确,就会出现返回结果,并高亮选中你想要查询的代码,如下:
如果语法错误,右边的窗口会给出提示,如果查询语句不正确,任何源代码都不会被选中。更多的XPath语法可以参考http://www.w3schools.com/xpath/。
总结:sonar其实很早就支持了对JS的代码校验,但是你如果想自己定制校验规则,最简单的方式就是通过sonar的web接口增加XPath规则,这个需要在XPath语法上多花点力气,如果写出来的查询语法不正确,可以多试几遍,用SSLR JavaScript Toolkit 可以很方便的调试。最后祝大家都可以在sonar上配置自己的自定义规则。
首先通过在这里下载SSLR JavaScript Toolkit 工具,下载下来是一个jar包,在cmd窗口使用java -jar sslr-javascript-toolkit-1.3.jar打开这个工具,操作界面如下:
左上方的窗口是用来输入你的源代码,右上方的窗口是来显示你的AST,最下面的窗口是来输入你的XPath规则。
我们现在左上方输入一些简单的javascript代码,然后点击 Parse Source Code按钮,可以得到源代码的语法树:
得到语法树后,我们也可以点击右边窗口的XML页面,得到的是语法树的XML文档。有了XML文档,就可以通过XPath轻松得到你想要的语句了。
举个例子:比如我想得到本地变量名,即var关键字后面的变量名,可以通过XPath的语法来查询。
在最下方的窗口输入XPath语法规则,点击Evaluate XPath按钮,如果语法正确,就会出现返回结果,并高亮选中你想要查询的代码,如下:
如果语法错误,右边的窗口会给出提示,如果查询语句不正确,任何源代码都不会被选中。更多的XPath语法可以参考http://www.w3schools.com/xpath/。
总结:sonar其实很早就支持了对JS的代码校验,但是你如果想自己定制校验规则,最简单的方式就是通过sonar的web接口增加XPath规则,这个需要在XPath语法上多花点力气,如果写出来的查询语法不正确,可以多试几遍,用SSLR JavaScript Toolkit 可以很方便的调试。最后祝大家都可以在sonar上配置自己的自定义规则。
相关文章推荐
- 利用Sonar定制自定义JS扫描规则(二)——自定义JS扫描规则
- 利用Sonar定制自定义JS扫描规则(一)——sonar环境搭建
- 利用Sonar定制自定义扫描规则
- 使用jquery.validate.min.js插件进行表单验证并自定义校验规则
- McAfee麦咖啡8.5企业版高级教程 用户自定义规则使用详细说明
- 利用jsdoc-toolkit生成javascript文档
- jquery.validate.js使用之自定义表单验证规则,下面列出了一些常用的验证法规则
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- jsdoc-toolkit文档工具使用说明
- JavaScript中使用ESLint 说明规则
- 利用spring 自定义注解扫描 找出使用自定义注解的类
- jquery.validate.js使用之自定义表单验证规则
- [Javascript]:JS创建对象方式、对象使用说明与常用内置对象总结
- OC-JS交互(WebViewJavascriptBridge使用说明)
- Javascript笔记一 js以及json基础使用说明
- iOS和JS互调--WebViewJavascriptBridge使用说明
- jquery.validate.js使用之自定义表单验证规则
- jquery.validate.js使用之自定义表单验证规则
- OC-JS交互(WebViewJavascriptBridge使用说明)
- Javascript笔记一 js以及json基础使用说明