我们日常呈现给用户看的数据多数是需要在代码中进行处理的,此时就少不了对各种数据字符串的处理,现在将相关字符串知识点整理如下:
String类型每个实例都有一个length属性,返回字符串中包含字符的个数,如
var stringValue = 'hello world';
alert(stringValue.length); // 11
一、字符方法------------------访问字符串中特定位置的字符
(1)chatAt(): 接收一个基于0的字符位置,返回字符串中对应位置的字符;
(2)chatCodeAt():类似上,但返回对应位置字符的字符编码
(3)使用方括号加数字索引:stringValue[1] //"e"
二、字符串操作方法-----------------基于子字符串创建新字符串
(1)concat(): 用于将一或多个字符串拼接起来,返回拼接得到的新字符串
var stringValue = "hello ";
var result = stringValue.concat("world")
alert(result); // "hello world"
alert(stringValue); // "hello " 原字符串不发生改变
可以往concat()中传入更多参数,表示拼接多个字符串
(2)其他三种方法:接收一或两个参数,第二个参数为可选-----------提取字符串
①slice():提取字符串的某个部分,并以新的字符串返回被提取的部分
接收两个参数,提取的起始位置和提取的结束位置(不包括结束位置),若出现负数,则从最后一个字符串
算起,如-1 表示最后一个字符位置
②substring():作用和参数同上,但参数只能是整数,若出现负参数转化为0后进行提取
③substr:作用同上,但参数不同,参数一依然为起始位置,若为负数则从最尾算起。参数二为提取的长度
三、字符串位置方法 ------------查找字符串
(1)indexOf(): 从一个字符串中搜索给定的子字符串,然后返回子字符串的位置,若没有则返回-1
(2)lastIndexOf():作用同上,但是从尾开始搜索。
以上两个方法都必须接收第一个参数(要搜索的字符串),同时还有可选的第二个参数(搜索的起始位置)
可以结合循环来找到所有匹配的子字符串,如下:
var stringValue = "Lorem ipsum dolor sit amet,consectetur adipisicing elit";
var positions = new Array();
var pos = stringValue.indexOf("e");
while(i>-1){
positions.push(pos);
pos = stringValue.indexOf("e",pos+1);
}
alert(positions);// 3,24,32,35,52
四、trim()方法
创建一个字符串的副本,删除前置和后缀的所有空格,返回结果
五、字符串大小写转换方法
(1)toLowerCase()
(2)toUpperCase()
六、字符串的模式匹配方法
(1)match():本质上与调用RegExp的exec()方法相同,只接受一个参数,正则表达式或者一个RegExp对象
var text = 'cat,bat,sat,fat';
var pattern = /.at/; //只搜索到第一个后停止,加g标志后,依次搜索
var matches = text.match(pattern);
console.log(matches.index);
console.log(matches[0]);
console.log(pattern.lastIndex);
matches数组的第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着与正则表达式中的捕获
组匹配的字符串。
(2)search(): 参数与上相同,但返回字符串中第一个匹配项的索引(子字符串中第一个字符的位置),如果没有,则返回-1
(3)简化操作 replace():接收两个参数,一为一个RegExp对象或者一个字符串,二为一个字符串(要替换的)或者一个函数,如果第一个参数为字符串的话那么只会替换第一个字符串,要想替换所有字符串,则第一个参数要为正则表达式并且指定全局标志g
如
var text = "cat,bat,sat,fat";
var result = text.replace("at","ond");
console.log(result); //"cond,bat,sat,fat"
result = text.replace(/at/g,"ond");
alert(result); //"cond,bond,sond,fond"