简体   繁体   English

IMacros:语法错误:丢失; 声明前

[英]IMacros: SyntaxError: missing ; before statement

I have a problem when I change the code from IIM to JS I face this message "SyntaxError: missing ; before statement, line 5 (Error code: -991)"当我将代码从 IIM 更改为 JS 时遇到问题我遇到此消息“SyntaxError: missing ; before statement, line 5 (Error code: -991)”

original code is working perfectly原始代码运行良好

SET !DATASOURCE Pack_01.txt
SET !DATASOURCE_LINE 1
SET !VAR1 EVAL("var s=\"{{!COL1}}\"; s.split(\"@\")[1];")
PROMPT ID:{{!VAR1}}

but the js code is not working for my但是js代码对我不起作用

var macro;
macro = "CODE:"; 
macro += "SET !DATASOURCE Pack_01.txt" + "\n";  
macro += "SET !DATASOURCE_LINE 1" + "\n";  
macro += "SET !VAR1 EVAL(\"var s=\\"{{!COL1}}\"; s.split(\"@\")[1];")" + "\n";  
macro += "PROMPT ID:{{!VAR1}}" + "\n";  
iimPlay(macro);

can you help, please!!你能帮忙吗,拜托!!

The syntax is not correct because your string contains double quotes.语法不正确,因为您的字符串包含双引号。 You need to escape them, replacing " with \\".您需要对它们进行转义,将“替换为\\”。

var macro;
macro = "CODE:";
macro += "SET !DATASOURCE Pack_01.txt" + "\n";
macro += "SET !DATASOURCE_LINE 1" + "\n";
macro += "SET !VAR1 EVAL(\"var s=\\\"{{!COL1}}\\\"; s.split(\\\"@\\\")[1];\")" + "\n";
macro += "PROMPT ID:{{!VAR1}}" + "\n";
iimPlay(macro);

Another option is to use template literals:另一种选择是使用模板文字:

var macro = `CODE:SET !DATASOURCE Pack_01.txt
SET !DATASOURCE_LINE 1
SET !VAR1 EVAL("var s=\\"{{!COL1}}\\"; s.split(\\"@\\")[1];")
PROMPT ID:{{!VAR1}}
`;
iimPlay(macro);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM