在串联字符串中包含单引号-Javascript
我试图使用Javascript为Oracle查询生成比较操作数,但查询在我有单引号的地方始终显示转义字符。如果能给我一些建议,我将不胜感激在串联字符串中包含单引号-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
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是正确的。