您的位置:首页 > Web前端 > JavaScript

JavaScript 字符串操作(给索引查字符/给字符查索引/uri 编码和解码/字符串拼接/字符串截取/去掉空白/替换/变为数组/查找字符串中所有匹配项)

2017-03-06 21:03 756 查看
JavaScript 字符串操作

① 给索引查字符 charAt / charCodeAt )

charAt,获取相应位置字符(参数: 字符位置)

注释:字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。

charCodeAt,获取相应位置字符编码(参数: 字符位置)

charAt()方法和charCodeAt()方法用于选取字符串中某一位置上的单个字符

区别:charCodeAt()方法,它并不返回指定位置上的字符本身,而是返回该字符在Unicode字符集中的编码值。如果该位置没有字符,返回值为NaN.
字符/字符编码 = Str.charAt/charCodeAt(索引值);


 给字符查索引indexOf / lastIndexOf

indexOf,从前向后索引字符串位置(参数: 索引字符串)

从前面寻找第一个符合元素的位置

lastIndexOf,从后向前索引字符串位置(参数:索引字符串)

从后面寻找第一个符合元素的位置

找不到则返回 -1
索引值 = str.indexOf/lastIndexOf(想要查询的字符);


③ uri 编码和解码

URI (Uniform ResourceIdentifiers,通用资源标识符)进行编码,以便发送给浏览器。有效的URI中不能包含某些字符,例如空格。而这URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解。(它们是BOM下的一个方法,属于window对象)

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码

decodeURIComponent() 函数可把字符串作为 URI 组件进行解码

④ 字符串的链接concat
新字符串 = str1.concat(str2); 链接两个字符串


⑤ 字符串的截取

slice,截取字符串(参数:1. 截取位置【必须】,2. 终结点)
字符串 = str.slice(索引1,索引2); //两个参数都是索引值。
//(2,5)  正常包左不包右
//(2)   从指定的索引位置剪到最后
//(-3)   从倒数第几个剪到最后
//(5,2)  前面的大,后面的小,无意义,空


substr,截取字符串(参数:1. 截取位置【必须】,2. 截取长度)
字符串 = str.substr(参数1,参数2); //1索引值,2长度
// 第一个参数为从索引位置取值,第二个参数返回字符长度
//(2,4)从索引值为2的字符开始,截取4个字符
//(1)  一个值,从指定位置到最后
//(-3) 从倒数第几个剪到最后
// 不包括前大后小的情况


substring 同slice
字符串 = str.substring(参数1,参数2); //两个参数都是索引值。
//不同1:参数智能调转位置
//不同2:参数负值,将全部获取字符串
//(2,5)   正常包左不包右
//(2)     从指定的索引位置剪到最后
//(-3)    获取全部字符串
//(5,2)   前面的大,后面的小,不是空,同(2,5),智能调换


⑥ 特殊方法

trim( )      只能去除字符串前后两端的空白
var str = " aaa bnn dccc "
console.log(str.trim()); //aaa    bnn   dccc




replace( )   替换
var str = "abc";
console.log(str.replace("a","b"));//bbc




split( )  把字符串切割成数组和 join方法(数组转为字符串) 是天生一对
var str = "我-爱-你-中-国";
//若参数为空字符串"",默认用逗号把字符串中的每个元素分隔
console.log(str.split(""));//["我", "-", "爱", "-", "你", "-", "中", "-", "国"]
//若不写参数,整个字符串作为数组的一个元素
console.log(str.split());//["我-爱-你-中-国"]
//分隔完毕之后,使用的工具将不存在数组中
console.log(str.split("-"));//["我", "爱", "你", "中", "国"]


to(Locale)UpperCase()   转换大写
to(Locale)LowerCase()   转换小写


案例:如何在一个字符串中查找所有的匹配项?
var arr1 = 'a,b,d,e,f,e,f,e,g'.split(',');
//找到第一个e的索引
arr1.indexOf('e');//3
//等价于(第二个参数:从第0个位置开始找)
arr1.indexOf('e',0);//3
//找到第二个e的索引(从第一个找到的位置的下一个位置开始找)
arr1.indexOf('e',4);//5
//找到所有的e
var i1 = arr1.indexOf('e');
var i2 = arr1.indexOf('e', i1 + 1);
var i3 = arr1.indexOf('e', i2 + 1);
var i4 = arr1.indexOf('e', i3 + 1);
//将上述代码从形式上转换成一模一样的代码
//将其写入循环(while)
i1 = -1;
while(1){
i1 = arr1.indexOf('e', i1 + 1);
//什么时候跳出?
//如果i1结果是-1,说明从左往右查找字符串都没有得到需要的数据,即已经遍历完所有数据
if(i1 == -1){
break;
}
}
//改良(bug:进不去循环)
var i1 = -1;
while(i1 != -1){
i1 = arr1.indexOf('e', i1 + 1);
}
//先做一次再进循环
var i1 = -1;
do{
i1 = arr1.indexOf('e', i1 + 1);
if(i1 != -1){
console.log(i1);
}
}while(i1 != -1);



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐