繁体   English   中英

如何摆脱字符串文字中的多余空间?

[英]How to get rid of extra space in string literal?

代码如下:

const documentSigner = `${parameters.signor.surname} ${parameters.signor.name} ${parameters.signor.patronymic || ''}`;

如您所见,如果有赞助,一切都会很好,但是如果没有,将会有额外的空间。

如何处理呢?

将多余的空间移到插值中,并且只有在存在patronymic ,才添加该空间。

const { surname, name, patronymic } = parameters.signor;

const documentSigner = `${surname} ${name}${patronymic ? ` ${patronymic}` : ''}`;

通过将要打印的元素添加到Array,然后调用Array.prototype.join方法,可以使用JavaScript的“ StringBuilder ”。 这会将所有元素连接成单个字符串,并由提供给join方法的字符串分隔。

这样,您将不必重复连接器字符串,还可以更轻松地维护/改进其功能。

var text = [parameters.signor.surname, parameters.signor.name];
if(parameters.signor.patronymic) text.push(parameters.signor.patronymic);
const documentSigner = text.join(" ");

您可以使用三元和嵌套模板字符串来执行此操作,以在变量不为空的情况下在其前面添加一个空格:

 function complexString(val1, val2) { return `${val1}${val2 ? ` ${val2}` : ''}!`; } console.log(complexString('hello', 'world')); console.log(complexString('hello', '')); 

或者,您也可以使用逻辑和(&&)在两部分之间插入空格:

 function complexString(val1, val2) { return `${val1}${val2 && ' '}${val2}!`; } console.log(complexString('hello', 'world')); console.log(complexString('hello', '')); 

您可能需要修剪变量以使测试更可靠:

`${val1}${val2 && val2.trim() ? ` ${val2}` : ''}!`;
`${val1}${val2 && val2.trim() && ' '}${val2}!`;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM