【问题标题】:How do I insert a character between two characters wherever they occur in a string? [duplicate]如何在字符串中出现的两个字符之间插入一个字符? [复制]
【发布时间】:2016-07-18 22:22:24
【问题描述】:
我试图弄清楚如何在小写字母之后但在字符串中的大写字母之前插入一个字符,无论它出现在哪里。例如,对于字符串"HiMyNameIsBob",如果我要插入空格,我希望它返回"Hi My Name Is Bob"。我想做一些类似于 replace() 所做的事情。我正在使用 JavaScript。
如果答案涉及到任何正则表达式的使用,对所使用的正则表达式的解释会很好。
【问题讨论】:
标签:
javascript
string
replace
insert
【解决方案1】:
var string = 'HiMyNameIsBob';
string = string.replace(/([a-z])([A-Z])/g, '$1 $2')
将在每次出现小写字符后插入一个空格,后跟一个大写字符。
[a-z] any lower char from a to z
[A-Z] any upper char from a to z
/g means global
'$1 $2' are wildcards
【解决方案2】:
var insertSpace = function(string) {
var chars = string.split('');
var insert = ' ';
for (var i = 0; i < string.length; i++) {
var char = chars[i];
var nextChar = chars[i + 1] || null;
if (char === char.toLowerCase() && nextChar === nextChar.toUpperCase()) {
chars.splice(i + 1, 0, insert);
i++;
}
}
return chars.join('');
}