在typescript / javascript中连接字符串

时间:2019-05-29 13:37:59

标签: javascript typescript

编辑:该字符串是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.

我在做什么错了?

3 个答案:

答案 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。结果就是您所期望的。