在我的C ++应用程序中使用嵌入式SpiderMonkey我想从JavaScript代码中提取所有字符串。 JavaScript代码看起来像这样:
var foo = "something";
var space = " ";
var bar = foo + space + "beautiful";
C ++代码如下所示:
char *script = "var foo = \"something\"; var space = \" \"; var bar = foo + space + \"beautiful\";";
ok = JS_EvaluateScript(cx, global, script, strlen(script), filename, lineno, &rval);
所以我的问题是,在SpiderMonkey执行JavaScript之后,如何从变量 bar 中提取字符串(提取的值应该是“美丽的东西”)并在常规C ++代码中使用它?我想我必须首先评估脚本,然后以某种方式从JavaScript变量中提取字符串。我不知道如何使用SpiderMonkey提取字符串。
我的第二个问题:
http://siliconforks.com/doc/parsing-javascript-with-spidermonkey/
这个SpiderMonkey JavaScript解析器是为SpiderMonkey 1.6编写的。
如何使用最新的SpiderMonkey来完成,因为API可用于
解析已经改变了?
答案 0 :(得分:0)
由于 bar 是全局对象的属性,在JS_EvaluateScript()之后我可以使用JS_GetProperty()函数,类似这样的
JS_GetProperty(cx, global, "bar", &rval);
JSString *str = JS_ValueToString(cx, rval);
printf("%s\n", JS_EncodeString(cx, str));
答案 1 :(得分:-1)
检查字符串操作函数,如subString。它可用于解决您的查询。