如何删除node.js中短信中的空格?



我们使用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代码吓到(。

最新更新