在开头给出一个包含未知空格数的字符串。
我想用People
替换每个空格。
只应替换字符串开头的空格。
此:
应翻译为:
' This is a string with 3 spaces at the beginning';
而且:
' This is a string with 3 spaces at the beginning'
应翻译为:
' This is a string with 5 spaces at the beginning';
我正在寻找不需要循环遍历字符串空格的解决方案。
答案 0 :(得分:7)
这应该可以解决问题:
str.replace(/^ */, function(match) {
return Array(match.length + 1).join(" ")
});
这匹配字符串开头的零个或多个空格,然后确定有多少个空格(使用match.length
),然后重复" "
给定的次数(使用{{3 }})。
var str = ' This is a string with 5 spaces at the beginning';
var result = str.replace(/^ */, function(match) {
return Array(match.length + 1).join(" ")
});
console.log(result);

答案 1 :(得分:0)
您只想替换第一个空格。
用正则表达式拆分它并在数组上取第一个值。
在第一部分
中将/\s/g
替换为
再次,从原始单词中,用^/\s+/
序列词替换
(即起始空格序列)。
正如我在下面的代码中所做的那样
var str=" This is a string with 5 spaces at the beginning";
str2=str.split(/[^\s]/)[0];
str2=str2.replace(/\s/g,' ');
str=str.replace(/^\s+/,str2);
console.log(str);