编辑:该字符串是json的一部分,我正在将其写入文件中。在那个json文件中,我看到了转义字符。使用console.log,我看不到任何转义字符。
我试图连接一个字符串,以便得到以下输出:
"OR("1admin", "2admin")"
但是我不断得到的输出是
"OR(\"1admin\", \"2admin\")"
示例代码
var str = "OR("
for (let i = 1; i < 3; i++) {
str += '"' + i + 'admin' + '", ';
}
str = str.trim().substring(0, str.length - 2).concat(')')
console.log(str)
我尝试使用正则表达式和字符串拆分。 例如。
.replace(/'/g, '"')
这是当我尝试类似"'" + i + "admin" + "', "
并尝试将'
替换为"
.split('\\').join('').trim() This also didn' work.
我在做什么错了?
答案 0 :(得分:1)
如上所述,您已经在原始代码段中获得了正确的结果。
如果您对字符转义语法感到好奇,我建议使用template strings使用类似以下的内容。
您可以将"
写入未转义的模板字符串中,并使用插值来打印变量。
编辑:似乎需要JSON格式。您可以使用JSON.stringify
。 JSON格式的字符串将包含转义字符,这些字符会显示在console.log
输出中。
const f = (n, s) => {
const a = new Array(n)
.fill()
.map((_, i) => `"${i + 1}${s}"`);
return `OR(${a.join(', ')})`;
}
console.log(`output: ${f(2, "admin")}`)
console.log(`json-formatted: ${JSON.stringify(f(2, "admin"))}`)
答案 1 :(得分:-1)
这似乎可以完成工作:
const NUM_ADMINS = 2;
const CONCAT_STRING =
`OR(${
Array(NUM_ADMINS)
.fill()
.map((_, idx) => `"${idx + 1}admin"`)
.join(", ")})`;
它将创建一个具有所需管理员数量的新数组,然后将其映射为“ admin”形式的字符串,并以逗号和空格连接。然后将其全部包裹在“ OR()”字符串中。
答案 2 :(得分:-1)
var str = '"OR("'
var adm = 'admin"'
var end = ')"'
for (let i = 1; i < 3; i++) {
str += i + adm + ', '
}
str = str.trim().substring(0, str.length - 2)
str += end
console.log(str);
尝试运行此代码段。如果实施对您来说是fyn。结果就是您所期望的。