最近在学习JS的内置对象。
在申明字符串的时候,如果要将字符串的每个单词首字母都大写,长句子人工修改即为不变。举个栗子,将以下句子每个首字母大写:
var str="frankly, my dear, I don't give a damn";
首先,字符串是无法直接修改的,JS无法根据字符串的空格进行判断修改,所以可以通过split(),将字符串转为数组。
var arr=str.split(" ");
在控制台看看下效果:
可以看到字符串被切割成了数组。
创建一个新数组,并且加上循环,第i个数组内的字符串的第1个字符用toUpperCase() 进行大写,同时加上除了首字母后的字符,切割:substring(1) 或者 slice() 。
substring(start,end),是含头不含尾。substring(1,3)则代表数组内的[1] [2]。只填写1代表从1开始之后的所有:
var b=new Array(i);
for (var i=0;i<arr.length;i++){
b[i]=arr[i][0].toUpperCase()+arr[i].substring(1);
}
最后在利用数组的内置对象join() 将数组拼接成字符串并调试:
str=b.join(" ");
console.log(str)
完整代码如下:
var str="frankly, my dear, I don't give a damn";
var arr=str.split(" ");
console.log(arr)
var b=new Array(i);
for (var i=0;i<arr.length;i++){
b[i]=arr[i][0].toUpperCase()+arr[i].substring(1);
}
str=b.join(" ");
console.log(str)