从JavaScript代码中提取字符串

时间:2011-08-31 08:34:19

标签: javascript c++ spidermonkey

在我的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可用于 解析已经改变了?

提前Thnx,
戈兰

2 个答案:

答案 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。它可用于解决您的查询。