2011-08-31 6 views
1

내 C++ 응용 프로그램에 내장 된 SpiderMonkey를 사용하여 JavaScript 코드에서 모든 문자열을 추출하고 싶습니다. ,자바 스크립트 코드에서 문자열 추출

char *script = "var foo = \"something\"; var space = \" \"; var bar = foo + space + \"beautiful\";"; 
ok = JS_EvaluateScript(cx, global, script, strlen(script), filename, lineno, &rval); 

그래서 내 질문입니다 SpiderMonkey를 자바 스크립트를 실행 한 후, 어떻게 추출 된 변수 (에서 문자열을 추출 할 수 있습니다 :

var foo = "something"; 
var space = " "; 
var bar = foo + space + "beautiful"; 

C++ 코드는 다음과 같습니다 : 자바 스크립트 코드는 다음과 같이 보입니다 가치가 "뭔가 아름답다") 내 일반적인 C++ 코드에서 사용해야합니까? 스크립트를 먼저 평가 한 다음 JavaScript 변수에서 문자열을 추출해야합니다. SpiderMonkey를 사용하여 문자열을 추출하는 방법을 모르겠습니다.

내 두 번째 질문 :이 SpiderMonkey를 자바 스크립트 파서가 SpiderMonkey를 1.6를 위해 작성되었습니다
http://siliconforks.com/doc/parsing-javascript-with-spidermonkey/
. 구문 분석 용 용 API가 변경 되었기 때문에 최신 SpiderMonkey로 어떻게이 작업을 수행 할 수 있습니까? 사전에

Thnx을, 문자열과 같은

+0

같은 JS_GetProperty() 함수 것을 사용 가능) JS_EvaluateScript (이후, 전역 객체의 속성입니다. 서버 측 C++에 클라이언트 측 JS 변수의 내용을 전달하는 것에 대해 이야기하는 경우 http (ajax, form)를 사용하여 서버에 vars를 보내야합니다. – mplungjan

+0

@mplungjan 매우 정확하지 않았습니다. 내 C++ 앱에 SpiderMonkey가 포함되어 있습니다. 짧은 스 니펫 : char * script = "var foo = 'some string'"; 확인 = JS_EvaluateScript (cx, global, script, strlen (script), filename, lineno, &rval);) 이제 JavaScript 변수 foo의 값을 얻으려면 어떻게해야합니까? – Goran

+0

질문 업데이트 – mplungjan

답변

0

이후 줄 나는 당신이 추출해야하는 상황에 더 명확 해주십시오이

JS_GetProperty(cx, global, "bar", &rval); 
JSString *str = JS_ValueToString(cx, rval); 
printf("%s\n", JS_EncodeString(cx, str)); 
+0

위의 예는 최신 Mozilla JavaScript 버전 38 이상 ('js'와'xpcshell' 둘 다)이 더 이상 작동하지 않습니다. –

-1

확인 문자열 연산 기능
고란. 그것은 당신의 쿼리를 해결하는 데 사용할 수 있습니다.

+0

하위 문자열 - 및 – mplungjan