奥托加载的js文件错误:(匿名):第1行:59374无效的正则表达式:re2:无效(?=)(还有1个错误)
附上主要代码
vm := otto.New()
vm.Set("require", require)
val,err := vm.Run(`
require("raphael.js");
`)
Enclose Load方法
func require(call otto.FunctionCall) otto.Value {
file := call.Argument(0).String()
fmt.Printf("requiring: %s\n", file)
data, err := ioutil.ReadFile(file)
if err != nil {
fmt.Println(err)
panic(err)
}
_, err = call.Otto.Run(string(data))
if err != nil {
fmt.Println(err)
panic(err)
}
return otto.TrueValue()
}
Js文件地址(我在本地保存)
http://index.baidu.com/static/js/raphael.js
答案 0 :(得分:0)
问题出现是因为otto不完全支持正则表达式。
在奥托的文件中,他们说:
(?=) // Lookahead (positive), currently a parsing error
(?!) // Lookahead (backhead), currently a parsing error
\1 // Backreference (\1, \2, \3, ...), currently a parsing error
https://github.com/robertkrimen/otto#regular-expression-incompatibility