使用一些数组元素连接字符串(Javascript)

使用一些数组元素连接字符串(Javascript),javascript,arrays,string,concatenation,Javascript,Arrays,String,Concatenation,如何通过连接文字字符串和数组元素来形成字符串变量 我试过这个: var stringTing = '<a href="www.' + arr[0] + '.com/' + otherArr[0] + '"'; 我试图实现的实际代码使用了以下概念: var handles = tmpStr.match(reg); for (var i = 0; i < handles.length;i++) { tmpStr.replace(handles[i], '<a h

如何通过连接文字字符串和数组元素来形成字符串变量

我试过这个:

var stringTing = '<a href="www.' + arr[0] + '.com/' + otherArr[0] + '"';
我试图实现的实际代码使用了以下概念:

var handles = tmpStr.match(reg);    

for (var i = 0; i < handles.length;i++) {
    tmpStr.replace(handles[i], '<a href="www.instagram.com/' + handles[i].replace('@','') + '>' + handles[i] + '</a>');
    console.log(tmpStr);
}

这是因为您没有重新分配tmpStr。replace不会改变tmpStr,它会返回一个新字符串

只需重新分配:

var handles = tmpStr.match(reg);    

for (var i = 0; i < handles.length;i++) {
    tmpStr = tmpStr.replace(handles[i], '<a href="www.instagram.com/' + handles[i].replace('@','') + '>' + handles[i] + '</a>');
    console.log(tmpStr);
}

这是因为您没有重新分配tmpStr。replace不会改变tmpStr,它会返回一个新字符串

只需重新分配:

var handles = tmpStr.match(reg);    

for (var i = 0; i < handles.length;i++) {
    tmpStr = tmpStr.replace(handles[i], '<a href="www.instagram.com/' + handles[i].replace('@','') + '>' + handles[i] + '</a>');
    console.log(tmpStr);
}
Stringreplace不会改变字符串,因为它是一个基本值。相反,它返回一个新字符串,因此您必须将其分配回tmpStr,这可能会导致其他问题,因为您正在使用循环替换子字符串

另外,为什么要匹配处理程序,然后再次检查字符串以替换匹配项?只需使用replace with regex和回调一次性完成,这保证不会导致上述问题:

tmpStr = tmpStr.replace(reg, function(match) {
    return '<a href="www.instagram.com/' + match.replace('@','') + '>' + match + '</a>';
});
Stringreplace不会改变字符串,因为它是一个基本值。相反,它返回一个新字符串,因此您必须将其分配回tmpStr,这可能会导致其他问题,因为您正在使用循环替换子字符串

另外,为什么要匹配处理程序,然后再次检查字符串以替换匹配项?只需使用replace with regex和回调一次性完成,这保证不会导致上述问题:

tmpStr = tmpStr.replace(reg, function(match) {
    return '<a href="www.instagram.com/' + match.replace('@','') + '>' + match + '</a>';
});

我对函数如何知道它的'match'参数是正则表达式中的一个匹配项,以及如何知道循环遍历正则表达式中的所有匹配项感到困惑。你能向我解释这个概念吗?@forestaker我添加了一个简单的解释。我希望这是清楚的。您可以阅读有关Stringreplace on的更多信息。根据您的需要,还可以使用特殊字符串而不是函数来缩短代码。我对函数如何知道其“match”参数是正则表达式中的一个匹配项以及如何知道循环遍历正则表达式中的所有匹配项感到困惑。你能向我解释这个概念吗?@forestaker我添加了一个简单的解释。我希望这是清楚的。您可以阅读有关Stringreplace on的更多信息。根据需要,您还可以使用特殊字符串而不是函数来缩短代码。