我们使用node.js通过短信发送预订确认消息。如果我们使用中断标记,它会<br />
与消息一起显示,因此我们使用 在特定行之后给出中断。但是我们在短信中得到了空白。我们如何删除空格 谁能帮帮我。
otpMessages(otp, doctor_fullname, passwd, mobile_number) {
return `
x has invited you to join Platform.
Please click on the following link to download and register. n
Your OTP is ${otp}. n
Download App: (app link) n
Thanks,
`;
},
您可以从字符串模板中删除所有额外的缩进,但代码看起来会很丑陋。
所以我建议通过连接字符串来做到这一点。
例:
otpMessages(otp, doctor_fullname, passwd, mobile_number) {
return [
'x has invited you to join Platform. Please click on the following link to download and register.',
`Your OTP is ${otp}.`,
'Download App: (link)',
'Thanks,'
].join('nn')
},
结果:
x has invited you to join Platform. Please click on the following link to download and register.
Your OTP is <otp>.
Download App: (link)
Thanks,
只需通过它而没有任何换行符
otpMessages(otp, doctor_fullname, passwd, mobile_number) {
return `
x has invited you to join Platform.
Please click on the following link to download and register.
Your OTP is ${otp}.
Download App: (link)
Thanks,
`;
},
我将描述模板文字方法,以防您仍然想使用它。
我想您可能只是不熟悉如何控制模板文字中的空格。 基本上:所见即所得。 如果您键入空格(例如缩进或换行符(,它就在那里。 如果你不想要它,那就省略它。
例如:
technique1 = `Hello
World`;
technique2 = `HellonWorld`
alternate_technique = [
'Hello',
'World'
].join('n');
但是,它会弄乱程序的整体缩进,因为第一个文字行尾之后的所有内容都会导致程序明显缩进的干扰。
因此,如果您缩进代码,您可能会得到意外/不需要的空格:
wrong = `Hello
World`
which_is_the_same_as = `Hellon World`;
如果您真的想保持代码缩进,请考虑不同的 编写多行字符串的方法,例如技术 Ihor 建议使用位置 数组和字符串与
'n'
联接以保持代码缩进,但仍添加换行符。
我不是 100% 确定您想要在哪里换行符,以及您是否尝试插入额外的(双倍行距(换行符或其他什么,但这概述了解决方案的基本概念。 但在这里我已经演示了:
- 如何删除换行符(
Platform.
和Please
之间( - 如何添加单个换行符(
register.
之后Your
之前
( - 如何添加双换行符垂直空格(在URL之后,在
Thanks,
之前( - 如何删除初始换行符(打开反引号后(
- 如何删除最后的换行符(在关闭反引号之前(
- 如何删除行首的空格(不要缩进(
let otp = '12345';
function bad() {
return `
x has invited you to join Platform.
Please click on the following link to download and register. n
Your OTP is ${otp}. n
Download App: (link) n
Thanks,
`;
}
function good() {
return `x has invited you to join Platform. Please click on the following link to download and register.
Your OTP is ${otp}.
Download App: (link)
Thanks,
`;
}
console.log(bad());
console.log(good());
作为DevOps的问题,我可以说在生产代码中,我编写大型消息模板,就像你显示为自己的独立文本文件的模板一样;我使用构建步骤将文件中的文字文本转换为JavaScript。 我意识到它不能直接允许使用您使用的技术进行字符串插值,但是有很多方法可以引入模板,降价等,甚至使用字符串编译器,允许您通过JavaScript模板文字语法直接传递到编译的代码(尽管从代码和安全的角度来看,这是危险和脆弱的(。
当您想要将消息本地化为不同的语言时,这也很有用 - 您需要为每种语言提供不同的模板。 我以这种方式完成所有面向用户的模板文本,例如自动生成的电子邮件、面向用户的错误消息等。 它还允许我的技术写作团队在独立文件中修改面向用户的文本,而不必修改(或被相邻的JavaScript代码吓到(。