在串联字符串中包含单引号-Javascript

在串联字符串中包含单引号-Javascript,javascript,node.js,Javascript,Node.js,我试图使用Javascript为Oracle查询生成比较操作数,但查询在我有单引号的地方始终显示转义字符。如果能给我一些建议,我将不胜感激 let compOperands = "to_date('" + (moment(timeStamp).format("D-MMM-YYYY HH:mm:ss") + "', 'dd-mon-yyyy hh24:mi:ss')"); 控制台: SELECT * FROM IVR_LZ_CALL_LEG WHERE START_TS > to_date

我试图使用Javascript为Oracle查询生成比较操作数,但查询在我有单引号的地方始终显示转义字符。如果能给我一些建议,我将不胜感激

let compOperands = "to_date('" + (moment(timeStamp).format("D-MMM-YYYY HH:mm:ss") + "', 'dd-mon-yyyy hh24:mi:ss')");
控制台:

SELECT * FROM IVR_LZ_CALL_LEG WHERE START_TS > to_date(\'9-May-2017 06:32:32\', \'dd-mon-yyyy hh24:mi:ss\')
截止日期('2017年5月9日06:41:54','dd-mon-yyyyyyh24:mi:ss')

将其连接到另一个字符串后,转义字符将显示:

updateQuery=[(查询[queryName].query[0].concat(componerands))

控制台:

SELECT * FROM IVR_LZ_CALL_LEG WHERE START_TS > to_date(\'9-May-2017 06:32:32\', \'dd-mon-yyyy hh24:mi:ss\')
编辑: 好的,我把它扩展了一点,当字符串放入数组时,字符的添加似乎会发生。我重构了上面的连接,以便逐步了解控制台中正在发生的事情

let updateQuery = [],
queryString = queries[queryName].query[0].concat(compOperands);

updateQuery.push(queryString);


 options.json.queries = updateQuery;
  console.log(queryString);
  console.log(updateQuery);
控制台:

SELECT * FROM IVR_LZ_CALL_LEG WHERE START_TS > to_date(\'9-May-2017 06:32:32\', \'dd-mon-yyyy hh24:mi:ss\')
SELECT*从IVR\u LZ\u CALL\u LEG开始时间>到日期('2017年5月9日06:59:27','dd mon yyyy hh24:mi:ss'))
[“选择*从IVR\U LZ\U呼叫开始日期>到日期(\'2017年5月9日06:59:27\',\'dd-mon-yyyy hh24:mi:ss\')]

这就是在控制台中按节点显示字符串的方式,而
console.log
打印不带转义字符的字符串。转义字符实际上不是字符串的一部分,无论是在
componerands
中还是在连接的字符串中。
console.log(updateQuery[0].indexOf('\\')
返回-1,因此@MikaelLennholm是正确的。