使用模板文字时如何在字符串中包含括号()
?
当前其输出:
Test Yes Test
我希望这样输出带有括号:
Test (Yes) Test
代码:
let type = "Yes";
let string = `Test ${type? (type) : ''} Test`;
console.log(string);
答案 0 :(得分:2)
您可以在模板中使用模板
const type = 'yes';
const string = `Test ${type? `(${type})` : ``} Test`;
console.log(string)
答案 1 :(得分:1)
您可以包装整个placeholder
:
let type = 'yes';
let string = `Test (${type? type : ''}) Test`;
console.log(string)
或者如果类型是虚假的,如果您不需要包含它,则可以用+
将其连接起来或使用嵌套的占位符:
let type = 'Yes';
let string = `Test ${type ? `(${type})` : ''} Test`;
console.log(string)
为了娱乐,您可以编写一个Tagged template以使其更可重用:
function myTag(strings, ...values) {
let result = '';
strings.forEach((string, i) => {
// strings will always be +1 length over values as per the spec
const value = values[i] ? `(${values[i]})` : ''
result += string + value;
});
return result;
}
const test1 = "Yes";
const result1 = myTag`Test ${test1} Test`;
console.log(result1);
const test2 = null;
const result2 = myTag`Test ${test2} Test`;
console.log(result2);
答案 2 :(得分:1)
您需要指定括号是字符串的一部分,而不仅仅是操作顺序。
let string = `Test ${type? "(" + type + ")" : ''} Test`;