假设我有两个字符串变量:
a = 'LOVE';
b = '....';
如何使用正则表达式(或其他最快的方法)将 a + b 组合成:
c = 'L.O.V.E.';
在我的情况下,这两个字符串始终都是4个字符长,并且第二个字符串不是固定字符,我只是将它设为点号以使其在屏幕上更清晰。
假设我有两个字符串变量:
a = 'LOVE';
b = '....';
c = 'L.O.V.E.';
你可以简单地循环遍历长字符串,每次迭代将两个字符串中的一个字符附加到结果字符串中。我认为你不需要任何正则表达式:
a = 'LOVE';
b = '....';
var combinedString = '';
var largerLength = Math.max( a.length, b.length );
for( var i = 0; i < largerLength; i++ )
{
combinedString += a.charAt(i) + b.charAt(i);
}//for()
console.log( combinedString );
以上代码适用于任意长度的字符串。如果您事先知道两个字符串恰好都是4个字符长,那么最快且最有效的方法应该是:
a = 'LOVE';
b = '....';
var combinedString = a.charAt[0] + b.charAt[0] + a.charAt[1] + b.charAt[1] + a.charAt[2] + b.charAt[2] + a.charAt[3] + b.charAt[3];
console.log( combinedString );
Math.max( a.length, b.length )
的结果 :) - Rohit416combinedString += a.charAt(i) + b.charAt(i);
- user1106925Array#reduce
完成它。
var a = 'LOVE',
b = '....';
c = a.split('').reduce(function (r, v, i) {
return r + v + b[i];
}, '');
console.log(c);
a = 'AMAROK'
和b = '....'
,你会得到A.M.A.R.O.K.
,其中存在不应该存在的重复字符。 - ismnoieta
和 b
组合起来:
var a = "LOVE", b = "....";
var result = a.replace(/./g, (match, i) => match + b[i]);
console.log(result);
您可以在类似数组的数据结构(例如字符串)上使用数组函数来迭代其元素。
var a = 'LOVE',
b = '....',
c = Array.prototype.map
.call(a, (v, i) => v + b[i]).join('');
console.log(c);
你的问题不需要正则表达式。你可以通过for循环来解决它。
a = 'LOVE';
b = '....';
var result = '';
var length = Math.max( a.length, b.length );
for( var i = 0; i <+ length-1; i++ )
{
result = result + a.charAt(i);
result = result + b.charAt(i);
}
alert("Result of combined string is :"+ result);
如果你的第二个字符串总是由点
组成,而不是在字符串中重复相同的字符,请尝试像这样做:
var a = "LOVE";
var delimeter = ".";
var result = a.split("").join(delimeter) + delimeter;
console.log(result)
作为 string.charAt
的替代方案,您可以尝试以下方法:
注意:对于值可能未定义的情况,应使用 a1[i] || ""
。此外,应使用 .toString()
避免出现两个值都是数字的情况,结果将是加法而不是连接。
var a = 'LOVE';
var b = '....';
var c = ",,,,,,,,,,,";
function mergeStr(a, b) {
var a1 = a.split("");
var b1 = b.split("");
var len = Math.max(a.length, b.length)
var r = "";
for (var i = 0; i < len; i++) {
r += (a1[i] || "").toString() + (b1[i] || "").toString();
}
return r;
}
console.log(mergeStr(a,b))
console.log(mergeStr(a,c))
a.split('').join(delimiter) + delimiter;
。 - Morteza Tourani