我正在尝试创建一个在字符串参数的字符之间插入空格然后返回一个新字符串的函数,该字符串包含与参数相同的字符,用空格字符分隔。
E.g。
Hello
变为
H e l l o
我是一个大规模的新手,我确信这对某些人来说似乎没有脑子,但我似乎无法理解它。
答案 0 :(得分:12)
您可以使用split()
函数将字符串转换为单个字符数组,然后使用join()
函数将其转换回指定连接字符的字符串(将空格指定为加入角色):
function insertSpaces(aString) {
return aString.split("").join(" ");
}
(请注意,split()
的参数是您要拆分的字符,例如,您可以使用split(",")
来分隔以逗号分隔的列表,但是如果您传递一个空字符串它只是将每个角色分开。)
答案 1 :(得分:2)
这很简单......只需在字符串上调用replace方法,如下所示......
var str = "Hello";
console.info(str.replace(/\B/g, " ");
我在这里做的是替换单词内部的非单词边界。它恰好与“\ b”表示的单词边界相反,它位于单词周围;认为你好像匹配了这个词的边界。
答案 2 :(得分:1)
拆分和连接解决方案的替代方案可能是:
'Hello'.replace(/(.(?!$))/g,'$1 '); //=> H e l l o
// ^all characters but the last
// ^replace with found character + space
或在函数中:
function insertChr(str,chr) {
chr = chr || ' '; //=> default is space
return str.replace(/(.(?!$))/g,'$1'+chr);
}
//usage
insertChr('Hello'); //=> H e l l o
insertChr('Hello','-'); //=> H-e-l-l-o
或作为String原型函数:
String prototype.insertChr(chr){
chr = chr || ' '; //=> default is space
return this.replace(/(.(?!$))/g,'$1'+chr);
}
//usage
'Hello'.insertChr(); //=> H e l l o
'Hello'.insertChr('='); //=> H=e=l=l=o
答案 3 :(得分:1)
function insertSpaces(aString)
{
return aString.split('').join(' ');
}