我需要一些关于JavaScript中字符串构建和连接的帮助。
我在网站上有一个表单,用户输入一个VIP名称,然后将其添加到我的URL末尾以构建动态仪表板。
我的代码:
$(window).on('load', function() {
$('#open').click(function() {
var fixedData1 = 'http://testwebsite/dashboard/db/omni-vip?var-vip=',
userEntry1 = $('#one').val();
var newWindow = window.open(fixedData1 + userEntry1);
newWindow.focus();
});
});
实施例。用户输入.... app-123.network.dcs1.domain.com
然后打开一个包含URL的新页面:
http://testwebsite/dashboard/db/omni-vip?var-vip=app-123.network.dc.domain.com
这很棒并且工作正常,但是我想制作“DC'如果是变量,我有两个DC的DCS1 / dcS2,用户可以像上面那样输入,并在名称中指定dc。这仅打开具有该特定直流的仪表板。
我希望能够将dc作为变量传递给VIP名称,所以
vip = app-123.network。$ dc.domain.com
即使用户输入了具有特定名称的dc。
如果这可能吗?我不知道从哪里开始。
Thaks
答案 0 :(得分:1)
您的问题并不十分明确,但如果我理解正确,您希望接受以下条目:
XXX.dcS1.YYY
XXX.dcS2.YYY
但将以下内容传递给您的服务:
XXX.$dc.YYY
您可以使用正则表达式进行替换:
$(window).on('load', function() {
$('#open').click(function() {
var regex = /\.(dcS[12])\./;
var fixedData1 = 'http://testwebsite/dashboard/db/omni-vip?var-vip=',
userEntry1 = $('#one').val(),
replaced = userEntry1.replace(regex, '.$dc.');
var newWindow = window.open(fixedData1 + replaced);
newWindow.focus();
});
});
对于上述情况,如果用户输入app-123.network.dcS1.domain.com
,则会将其发送至http://testwebsite/dashboard/db/omni-vip?var-vip=app-123.network.$dc.domain.com
。
在这里测试正则表达式:
https://regex101.com/r/mCcR0D/2
如果我没有正确理解,请告诉我。
答案 1 :(得分:0)
ES2015的后退标记可以让您在字符串中使用${}
变量:
$('#open').click(function() {
let s = $('#one').val().toUpperCase().trim(); // s1 >>> S1
let url = `http://testwebsite/dashboard/db/omni-vip?var-vip=app-123.network.dc${s}.domain.com`;
let newWindow = window.open(url);
newWindow.focus();
});