将字符串模板分成两行而不附加新行或空格
Break the string template into two lines without appending new line or whitespaces
我有以下字符串模板:
const someUrl = `/${currentLocale}/somecategory/${category.get('slug')}/${post.get('iD')}/${post.get('slug')}`;
问题是这一行太长,我不得不打断它,但是在它的中间放置简单的输入 - 导致在生成的字符串中添加新行和额外的空格。
为了代码风格的目的,将字符串模板分成几行的最佳方法是什么?
如果你的意思是 python 中的反斜杠之类的东西,恐怕不,javascript 没有。
我建议使用 + 组合多个字符串段。更好看的缩进更容易,例如:
const someUrl = `/${currentLocale}/somecategory/${category.get('slug')}` +
`/${post.get('iD')}/${post.get('slug')}`;
或者如果你使用的是节点,你也可以考虑 util.format:
const util = require('util');
var template = '/%s/somecategory/%s/%s/%s';
var args = [currentLocale, category.get('slug'),
post.get('iD'), post.get('slug')];
const someUrl = util.format(template, ...args);
我不喜欢字符串连接。所以我建议您删除该多行模板字符串中的所有空格。
const someUrl = `
/${currentLocale}/somecategory/
${category.get('slug')}/
${post.get('iD')}/
${post.get('slug')}
`.replace(/\s+/g, '');
我发现很难读取有很多插值的模板字符串,就像您的示例中那样。
另一种方法是创建每个部分的数组并使用 Array#join
:
连接它们
const someUrl = '/' + [
currentLocale,
'somecategory',
category.get('slug'),
post.get('iD'),
post.get('slug')
].join('/');
我有以下字符串模板:
const someUrl = `/${currentLocale}/somecategory/${category.get('slug')}/${post.get('iD')}/${post.get('slug')}`;
问题是这一行太长,我不得不打断它,但是在它的中间放置简单的输入 - 导致在生成的字符串中添加新行和额外的空格。
为了代码风格的目的,将字符串模板分成几行的最佳方法是什么?
如果你的意思是 python 中的反斜杠之类的东西,恐怕不,javascript 没有。
我建议使用 + 组合多个字符串段。更好看的缩进更容易,例如:
const someUrl = `/${currentLocale}/somecategory/${category.get('slug')}` +
`/${post.get('iD')}/${post.get('slug')}`;
或者如果你使用的是节点,你也可以考虑 util.format:
const util = require('util');
var template = '/%s/somecategory/%s/%s/%s';
var args = [currentLocale, category.get('slug'),
post.get('iD'), post.get('slug')];
const someUrl = util.format(template, ...args);
我不喜欢字符串连接。所以我建议您删除该多行模板字符串中的所有空格。
const someUrl = `
/${currentLocale}/somecategory/
${category.get('slug')}/
${post.get('iD')}/
${post.get('slug')}
`.replace(/\s+/g, '');
我发现很难读取有很多插值的模板字符串,就像您的示例中那样。
另一种方法是创建每个部分的数组并使用 Array#join
:
const someUrl = '/' + [
currentLocale,
'somecategory',
category.get('slug'),
post.get('iD'),
post.get('slug')
].join('/');