引号不会被保留,因为它们实际上不是字符串值的一部分,它们只是在代码中指示字符串文字所必需的。
所以,不要使用toString()
。相反,一种方法如下:
var arr = ['item1','item2','item3','item4'];
var quotedAndCommaSeparated = "'" + arr.join("','") + "'";
// quotedAndCommaSeparated === "'item1','item2','item3','item4'"
The Array.join() https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join方法返回一个字符串,该字符串是所有数组元素连接成一个字符串,每个项目之间有一个(可选)分隔符。因此,如果您指定包含引号和逗号的分隔符,则只需手动为第一项和最后一项(分别)添加开始和结束引号。
(And please告诉我您没有使用客户端 JavaScript 来形成 SQL。)
编辑:为了允许空数组,请包含结果字符串的默认值,否则(如 Missingno 所指出的)字符串将是"''"
:
var newString = arr.length === 0 ? "" : "'" + arr.join("','") + "'";
// default for empty array here ---^^
(可能更合适有一个if (arr.length===0)
采取一些其他操作而不是运行 SELECT 语句。)