Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中的字符串构建和连接_Javascript_Html_Regex - Fatal编程技术网

JavaScript中的字符串构建和连接

JavaScript中的字符串构建和连接,javascript,html,regex,Javascript,Html,Regex,我需要一些关于JavaScript中字符串构建和连接的帮助 我在网站上有一个表单,用户在其中输入一个VIP名称,然后将该名称添加到我的URL末尾,以构建一个动态仪表板 我的代码: $(window).on('load', function() { $('#open').click(function() { var fixedData1 = 'http://testwebsite/dashboard/db/omni-vip?var-vip=', userEntr

我需要一些关于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:

这很好,工作也很好,但是我想让“DC”部分成为一个变量,我有两个DC的dcS1/dcS2,此时用户会像上面那样输入,并在名称中指定DC。这只会打开带有特定dc的仪表板

我希望能够以dc作为变量传递VIP名称,所以

vip=app-123.network.$dc.domain.com

即使用户使用特定的命名dc输入

如果可能的话?我不知道从哪里开始


Thaks

ES2015的back ticks可以让您在字符串中使用
${}
变量:

$(“#打开”)。单击(函数(){
设s=$('#one').val().toUpperCase().trim();/s1>>s1
让url=`http://testwebsite/dashboard/db/omni-vip?var-vip=app-123.network.dc${s}.domain.com`;
让newWindow=window.open(url);
newWindow.focus();
});

您的问题不太清楚,但如果我理解正确,您希望接受这样的条目:

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

在此处测试正则表达式:


如果我没有正确理解,请告诉我。

但是
用户输入字符串
特别是包含
dc
的字符串,因此他需要
string.replace()
slebetman,有没有可能使用字符串替换的示例?我可以读一整天,却一无所获,但有一个很好的例子通常可以做到这一点:)
var-url=”http://testwebsite/dashboard/db/omni-vip?var-vip=app-123.network.dc“+s+”.domain.com”这被称为TemplateLiteral,它也可以在调用时被标记(不过这取决于函数如何处理参数)!是的,你完全理解我的问题,上面的问题看起来很好,虽然我也是新手,也害怕正则表达式,我的例子被简化了,dcs1/dcs2,我的DC实际上被称为PAL/PFW,有没有可能用正则表达式来解决这个问题,我认为剩下的都是完美的,如果用户随后输入PAL或PFW,它将作为xxxxx.dc.yyyyy:)me=happy man传回我的服务!不确定正则表达式是否一定是这种简单替换的最佳工具,但
/\(PAL|PFW)\./i
应该可以做到这一点。