日期:2014-05-16 浏览次数:20435 次
初步试用jslint对javascript进行语法校验,事例代码如下:
package com.yonge.validateScript; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.List; import com.googlecode.jslint4java.Issue; import com.googlecode.jslint4java.JSLint; import com.googlecode.jslint4java.JSLintBuilder; import com.googlecode.jslint4java.JSLintResult; import com.googlecode.jslint4java.Option; /** * 利用JSLint验证js的正确性 * @author wb-gaoy * @version $Id: JSLintTest.java,v 0.1 2012-12-17 下午4:46:23 wb-gaoy Exp $ */ public class JSLintTest { public static void main(String[] args) throws IOException { JSLintBuilder builder = new JSLintBuilder(); //使用默认的jslint.js进行初始化 JSLint jsLint = builder.fromDefault(); //自定义jslint.js进行初始化 /*JSLint jsLint = builder.fromFile(new File(JSLintTest.class.getResource("/").getPath() + "/resource/webjslint.js"));*/ //过滤的警告选项 jsLint.addOption(Option.SLOPPY); jsLint.addOption(Option.WHITE); jsLint.addOption(Option.EQEQ); jsLint.addOption(Option.NOMEN); jsLint.addOption(Option.UNDEF); jsLint.addOption(Option.CONTINUE); jsLint.addOption(Option.ON); jsLint.addOption(Option.REGEXP); jsLint.addOption(Option.VARS); jsLint.addOption(Option.PLUSPLUS); //jsLint.lint(String systemId, Reader reader)第一个参数是指需要检查的文件名称,第二个参数是文件的内容 JSLintResult result = jsLint.lint("test.js", new FileReader(new File(ValidateScript.class .getResource("/").getPath() + "/resource/test.js"))); List<Issue> issues = result.getIssues(); System.out.println(String.format("总共有%1$d个问题", issues.size())); if (issues != null && issues.size() > 0) { for (Issue issue : issues) { System.out.println(String.format("第%1$s行的%2$s出现问题,原因:%3$s", issue.getLine(), issue.getEvidence(), issue.getReason())); } } } }
?不知道校验的效果好不好,有待考究,但如果有更好的校验方法,请留言,!!