带模板字符串的Javascript URL
我想挂载一个带有模板字符串的URL字符串。我想知道这是否可能 这就是我正在做的:带模板字符串的Javascript URL,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,我想挂载一个带有模板字符串的URL字符串。我想知道这是否可能 这就是我正在做的: let url = `http://example.com/ MY_SERVICE/ MY_CONTROLLER/ ${MY_FIRST_PARAM}/ ${MY_SECOND_
let url = `http://example.com/
MY_SERVICE/
MY_CONTROLLER/
${MY_FIRST_PARAM}/
${MY_SECOND_PARAM}`;
此代码将返回一个带换行符的字符串
我的问题是:这有可能不中断线吗?目的是使代码更具可读性
我的真实URL比这个大一点。您会得到换行符,因为在javascript中带有“``”符号的ENTER将导致换行,如下所述:
只需在同一行中写入所有内容。您可以在模板字符串后的任何空白字符上调用replace:
让MY_FIRST_PARAM='foo';
让我的第二个参数='bar';
让url=`http://example.com/
我的服务/
我的控制器/
${MY_FIRST_PARAM}/
${MY_SECOND_PARAM}`
.替换(/\s/g,”);
console.log(url)代码>以防这对其他人有用。
以下是我个人经历中与类似情况相关的笔记
问题最初是关于一个包含新行的长模板字符串。
但是这个例子也展示了一个可以动态存储URL和插件参数的系统
这是为那些来自未来的人准备的,他们碰巧也会尝试做同样的事情,不管是关于URI模板和/或模板文本,还是剥离空白/新行。就像我今天做的那样
作者很可能像他提出的问题那样实施
我们可以配置和插入变量的URL模式有一个规范和工具,可以帮助您避免重新发明轮子。:-)
此外,如果将多个模板文本连接在一起,则可以使用
更好的方法是利用JavaScript的URL
对象和
它使事情变得更容易管理
我今天使用的实现正在使用。
这个库非常棒,它支持
下面是一个完整的URI模板示例,以及如何在不使用正则表达式的情况下操作URL
//const urltemplate=require('url-template');
//使用问题中的示例,稍作修改。
让url=`http://example.com/
我的服务/
我的控制器
{/MY_FIRST_PARAM,MY_SECOND_PARAM}
`;
//(下图)去掉新线和空格
//凯博特的功劳
const parsed=urltemplate.parse(url.replace(/[\s\n]/g',);
const exampleFactory=a=>新URL(已解析。展开(a))
//请注意,我们没有给我的第二个参数任何级别
常数firstExample={
我的第一个参数:“foo”
}
log((exampleFactory(firstExample)).pathname);
//>'/MY_SERVICE/MY_CONTROLLER/foo'
const secondExample={
我的第一个参数:“foo”,
我的第二个参数:“酒吧”
}
log((exampleFactory(secondExample)).pathname);
//>'/MY\u SERVICE/MY\u CONTROLLER/foo/bar'
嗨,我做了,但是代码不是很可读。在我的例子中,我使用变量转换为字符串,因此,@KevBot提出的解决方案非常有效。