js中模板字符串中有变量如何换行,使用'\n\r' \n \r \r\n \和一个空格均不生效
时间: 2023-12-02 17:43:02 浏览: 33
在JavaScript中,可以使用反引号(`)来创建模板字符串,然后使用${}来插入变量。要在模板字符串中换行,可以使用普通的换行符(\n)或回车符(\r),但是需要注意的是,如果在模板字符串中使用反斜杠(\)和空格,则会导致换行符不起作用。为了解决这个问题,可以使用ES6中的标签模板来实现。具体步骤如下:
1.定义一个标签函数,该函数接收一个字符串数组和任意数量的参数。
2.在标签函数中,使用正则表达式将反斜杠和空格替换为换行符。
3.将处理后的字符串返回。
以下是一个示例代码:
```javascript
function myTag(strings, ...values) {
const str = strings.reduce((result, string, i) => {
const value = values[i] || '';
return result + string + value;
}, '');
return str.replace(/\\\s/g, '\n');
}
const name = 'John';
const age = 30;
const address = '123 Main St.\nAnytown USA';
const message = myTag`Name: ${name}\nAge: ${age}\nAddress: ${address}`;
console.log(message);
```
输出结果为:
```
Name: John
Age: 30
Address: 123 Main St.
Anytown USA
```