字符串
字符串又称包装数据类型
可以支持 [ ] 取值语法来获取字符串中的一个字符 , 也支持 字符串.length属性.
注意:
不是所有的数组操作字符串都支持.
不能通过 字符串 [ ] 语法修改字符串内容.
var str = 'abcdefg';
// []语法获取一个字符
console.log( str[0]); // 输出结果: a
console.log(str[3]); // 输出结果: d
// 字符串.length
console.log(str.length); // // 输出结果: 7
// 不支持字符串的修改操作
str[0] = 'n';
console.log(str); 输出结果: abcdefg
字符串的循环遍历方法
for循环
for…in循环
for…of循环
都可以循环遍历字符串.
var str = '12346';
// for循环
for(var i = 0 ; i<=str.length-1 ; i++){
console.log(str[i]);
}
//for ... in循环
for(var i in str){
console.log(str[i]);
}
//for ... of循环
for(var value of str){
console.log(value);
}
字符串的查询操作
字符串.indexOf()
字符串.search()
查询字符串中有没有匹配的字符, 如果有,返回第一个字符的索引下标, 如果没有返回 -1
字符串.search() 支持正则表达式
字符串.indexOf() 不支持正则表达式
字符串.lastIndexOf()
查询字符串中有没有匹配的字符, 如果有返回最后一个出现位置的索引下标, 如果没有返回 -1
var str = '您好新年好填好';
var res1 = str.indexOf('好');
console.log(res1); // 输出结果: 1
var res2 = str.lastIndexOf('好');
console.log(res2); // 输出结果: 6
var res3 = str.search('新');
console.log(res3); // 输出结果: 2
字符串截取函数
字符串.substr(参数1,参数2)
参数1 截取字符串的起始位置
0 或者正数起始位置的索引下标
负数从倒数第几个字符开始截取
参数2 截取字符串的个数
如果不设定参数2, 截取至末位
设定, 截取字符的个数
字符串.subString(参数1 , 参数2)
参数1 截取字符串的起始位置
0 或者 正数 起始位置的索引下标
负数 从第一个字符开始截取
参数2 截取字符串的结束位置
0 或者 正数 截取结果不包含结束位置
负数 向字符串起始位置截取
总结: 如果只定义第一个参数, 两个函数方法结果是相同的, 都是从定义的索引下标截取至字符串末位
var str = 'abcdefg';
// substr截取字符串
//从索引下标是3的第四个字符开始 截取至 字符串的末位
var res1 = str.substr( 3 );
console.log( res1 ); // 输出结果: defg
//从倒数第三个字符开始截取至字符串的末位
var res2 = str.substr( -3 );
console.log( res2 ); // 输出结果: efg
// 从索引下标是2的第3个字符开始截取3个字符
var res3 = str.substr( 2 , 3 );
console.log( res3 ); // 输出结果: cde
// 从倒数第三个字符开始截取截取2个字符
var res4 = str.substr( -3 , 2 );
console.log( res4 ); // 输出结果: ef
// substring截取字符串
// 从索引下标是3的第四个字符开始截取至字符串末位
var res5 = str.substring( 3 );
console.log( res5 ); // 输出结果: defg
// 从索引下标是3的位置开始截取
// 截取至索引下标是5的位置
// 但是结果不包括索引下标是5的位置
var res6 = str.substring( 3 , 5 );
console.log( res6 ); // 输出结果: de
var res7 = str.substring( 3 , -5 );
console.log( res7 ); // 输出结果: abc
字符串替换函数
字符串.replace( 参数1 , 参数2 );
参数1 需要替换的字符串的原始内容
参数2 需要写入的字符串的新内容
不会改变原始字符串中的内容 函数的执行结果返回值 是 新的字符串
如果需要改变原始字符串内容 需要做 赋值操作
字符串.replace() 默认只会替换第一个符合条件的字符 — 称为 懒惰模式
如果需要替换所有 可以使用
1, 正则表达式 -- 实际项目中使用的方法
2, 递归函数
3, 循环
var str = 'abcabcdagbc';
var res = str.replace('a','北');
console.log(str);
console.log(res);
// 通过循环实现替换所有 'a' 变为 '北'
// 字符串中没有要替换的字符 循环终止
while( true ){
str = str.replace( 'a' , '北京' );
// str中没有要替换的字符a 终止循环
if( str.indexOf('a') === -1 ){
break ;
}
}
console.log(str);
// 正则表达式 以后会讲
str = str.replace( /a/g , '北京' );
console.log( str );
获取字符函数
字符串.charAt()
按照索引下标获取字符
字符串.charCodeAt()
按照索引下标获取字符的ASCII码数值
字符串大小写统一函数
字符串.toLowercase()
所有字符小写
字符串.toUpperCase()
所有字符大写