我现在正在研究这样的问题,试图找出如何处理索引。这就是问题所在:
我有一个字符串: thisIsGreat
使用的基本操作如下:
var str = "thisIsGreat";
str = str.split(''); //Making it an array
.....
str = str.join(''); //String it back again
console.log(str);
所需输出:["t","h","i","s"," ","I","s"," ","G","r","e","a",t"]
我很难在不影响索引的情况下在这些单词之间插入空格。我尝试过类似的东西,但它没有用。
for (var i = 0; i < str.length; i++){
if (str[i]+1 == (str[i].toUpperCase())+1)
str[i] = " ";
}
有没有办法解决这个问题?有什么想法吗?
答案 0 :(得分:8)
你可以使用积极前瞻的替换。
var str = "thisIsGreat";
str = str.replace(/(?=[A-Z])/g, ' ').split('');
document.write('<pre>' + JSON.stringify(str, 0, 4) + '</pre>');
&#13;
答案 1 :(得分:4)
你的问题不是很清楚,如果你只是想在每个大写字母前插入一个空格,这对于正则表达式来说相当容易:
r = "thisIsGreat".replace(/[A-Z]/g, " $&");
alert(r)
&#13;
答案 2 :(得分:3)
使用您自己的逻辑
<form method="post">
{{ msform }}
{{ synform }}
</form>
如果您不希望结果为字符串,则最后删除连接。
答案 3 :(得分:1)
只需撤消for
循环。
for (var i = str.length - 1; i >= 0; i--){
if (str[i]+1 == (str[i].toUpperCase())+1)
str[i] = " ";
}
答案 4 :(得分:1)
'thisIsGreat'.replace(/([A-Z])/g,' $1').split('').join('", "')
//Output: "t", "h", "i", "s", " ", "I", "s", " ", "G", "r", "e", "a", "t"