JS字符串
官方也给字符串提供了很多的属性和方法,用来进行字符串的操作
(一)length属性
length属性:字符串的length属性,主要作用是获得字符串中字符的个数
- 如果字符串中没有该字符,返回【-1】
var str = '水面清圆,一一风荷举';
console.log(str.length);
字符串的length属性:经常结合循环语句一起使用,用来遍历字符
var str = '野渡无人舟自横';
for(var i = 0;i < str.length;i++){
console.log(str[i]);
}
(二)toLowerCase与toUpperCase方法
- toLowerCase方法:可以将字符串中,英文字符变为小写
- toUpperCase方法:可以将字符串中,英文字符变为大写
- 都是返回一个新的字符串,对于初始字符串没有影响
var str = '我喜欢xBsoY';
var newStr = str.toLowerCase();
var newStr1 = str.toUpperCase();
console.log(newStr);
console.log(newStr1);
(三)search与split方法
search方法:获取某个字符的索引值【第一个】
split方法:将字符串通过某个字符切割为一个数组
//search方法:获取某个字符的索引值
var str = '水面清圆,一一风荷举';
console.log(str.search('一'));//返回第一个字符的索引
//split方法:将字符串通过某个字符进行切割
var str = '争渡,争渡,惊起一滩鸥鹭';
var arr = str.split('争');
var arr1 = str.split('');//空字符串切割,获得字符串中每一个字符
console.log(arr);
console.log(arr1);
(四)substring与substr方法
- substring方法:主要作用是在父串中,切出一个子串
语法: str.substring(起始索引值,结束索引值) 【包含起始索引值,不包含结束索引值】 - substr方法:主要作用也是从父串中,切出一个子串
语法 str.substr(起始索引值,长度) - substring与substr方法:功能相近【切割出一个新的子串,不影响原字符串】,只不过传递参数不同
//substring方法:可以切割出一个新的字符串,返回一个新字符串,对于起始字符串没有影响
var str = '自古逢秋悲寂寥,我言秋日胜春朝,晴空一鹤排云上,便引诗情到碧霄';
var newStr = str.substring(8,15);
console.log(newStr);
//sunstr方法:从父串中切割出一个子串,返回一个新字符串,对于起始字符串没有影响
var str = '自古逢秋悲寂寥,我言秋日胜春朝,晴空一鹤排云上,便引诗情到碧霄';
console.log(str.substr(8));
console.log(str.substr(8,3));//从索引值为8的字符开始,切割三个字符
(五)replace与match方法
- replace方法:对字符串中某个符合条件的字符进行替换
- match方法:匹配出某个字符串中符合条件的【第一个】字符,返回一个数组
//replace方法:将某个字符串中符合条件的字符进行替换,返回一个新字符串,不影响原字符串
var str = '小楼昨夜又东风,故国不堪回首月明中';
var newStr = str.replace('小楼','高楼');
console.log(newStr);
//match方法:可以将某一个字符串中符合条件的第一个字符匹配出来,返回一个数组
str = '雕栏玉砌应犹在,只是朱颜改';
var arr = str.match('朱颜');
console.log(arr);
(六)练习
练习一
- 实战练习一:声明一个函数rev(str),函数功能如下:
比如:rev(‘我爱你北京’) 功能:返回的结果是倒置后的字符串
方法一:倒置遍历
//方法一
//声明函数
function rev(str){
//累加器
var result = '';
for(var i = str.length -1;i >= 0;i--){
result += str[i];
}
return result;
}
//调用函数
var newStr = rev('我爱你北京');
console.log(newStr);
方法二:字符串与数组的相互转换
//方法二
function rev(str){
//字符串的split方法可以将字符串转换为数组
var arr = str.split('');
//数组的reverse方法可以将数组元素进行倒置
arr.reverse(arr);
//join方法:可以将数组转换为字符串
var result = arr.join('');
//返回结果
return result;
}
//调用函数
var result = rev('小楼昨夜又东风');
console.log(result);
练习二
实战练习二:封装一个函数changeString(str) 功能:将字符串中英文进行大小写转换
//将英文字母大小写进行转换
//声明函数
function changeString(str){
//无非大写变小写,小写变大写
//累加器
var result = '';
for(var index = 0;index < str.length;index++){
//获取到全部大写英文字母
if(str[index] < 'a'){
//进入这个条件分支的一定是大写字符
result += str[index].toLocaleLowerCase();
}else{
//进入这个分支的一定是小写字符
result += str[index].toUpperCase();
}
}
return result;
}
//调用函数
var result = changeString('IlikeBeijing');
console.log(result);
练习三
实战练习三
- 编写一个程序:设计一个函数fun(str),功能:将每个英文单词的首字母变为大写
比如:fun(‘i like beijing’) 返回结果 I Like Beijing
//声明函数
function fun(str){
//获取到实参中每一个英文单词
var arr = str.split(' ');
console.log(arr);
//累加器
var result = '';
//循环遍历数组:获取到每一个英文单词
for(var i = 0 ; i < arr.length ; i++){
result += arr[i][0].toUpperCase() + arr[i].substr(1);
}
return result;
}
//调用函数
var newStr = fun('i like beijing');
console.log(newStr);