我有简单的javascript作为我的方法的文本输入,我只需要验证此文本并确保它不包含一些块列出的单词(例如 eval )in它,但同时,我想忽略被定义为字符串变量的注释文本或文本。
我只是使用简单的正则表达式来实现这一点,但是我不能忽略这种方法中的注释和字符串变量。
public void isValidJavascript(String source, String blocklistedWord) {
String pattern = "\\b"+blocklistedWord+"\\b";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(source);
if(m.find()){
System.out.println("Invalid javascript");
}
}
示例Javascript,我们假设我的阻止列出的关键字是 import 这个例子,所以我希望contains方法为此返回false,因为正则表达式应该忽略在注释行和变量中的导入海峡
//there is import keyword in below string variable
var str = "Apple, Banana, Kiwi, import";
var res = str.slice(7,13);
console.log(res);