JS字符串处理方法
1.字符方法
charAt()和charCodeAt();这两个方法都接收一个参数
例:
<script>
var stringValue = "hello world";
stringValue.charAt(1);//"e"=>以单字符字符串的形式返回给定位置的字符
stringValue.charCodeAt(1);//"101"=>以单字符字符串的形式返回给定位置的字符的编码
//此外:stringValue[index]方法也返回特定位置的单个字符
//例:
stringValue.stringValue[1];//"e"=>返回特定位置的单个字符
</script>
2.字符串的截取方法 slice(),substring(),substr()的区别
<script>
var stringValue = "hello world";
alert(stringValue.slice(3));//"lo world"=>从第三个字符开始截取至最后
alert(stringValue.substring(3));//"lo world"=>从第三个字符开始截取至最后
alert(stringValue.substr(3));//"lo world"=>从第三个字符开始截取至最后
alert(stringValue.slice(3,7));//"lo w"=>从第三个字符开始到第七个字符之间的字符
alert(stringValue.substring(3,7));//"lo w"=>从第三个字符开始到第七个字符之间的字符
alert(stringValue.substr(3,7));//"lo worl"=>从第三个字符开始向后截取七个字符
//这三个方法对于参数为负数时的处理
alert(stringValue.slice(-3));//"rld"=>相当于(8);会将负值与字符串的长度相加
alert(stringValue.substring(-3));//"hello world"=>相当于(0);会将所有负值参数转化为0
alert(stringValue.substr(-3));//"rld"=>相当于(8);会将第一个参数转化为负值与字符串的长度相加,第二个参数转化为0
alert(stringValue.slice(3,-4));//"lo w"=>相当于(3,7);会将负值与字符串的长度相加
alert(stringValue.substring(3,-4));//"hel"=>相当于(3,0)再自动转化为(0,3);而该方法会自动将较小的数字作为起始位置;会将所有负值参数转化为0
alert(stringValue.substr(3,-4));//""=>相当于(3,0)即从第三个字符开始向后截取0个;从会将第一个参数转化为负值与字符串的长度相加,第二个参数转化为0
</script>
3.字符串位置方法:indexOf()与lastIndexOf();
var stringValue = "hello world";
stringValue.indexOf("o");//4=>从字符串的开头向后搜索子字符串的位置
stringValue.lastIndexOf("o");//7=>从字符串的末尾向前搜索子字符串的位置
加上可选的第二个参数
stringValue.indexOf("o",6);//7=>从字符串的第六个字符向后搜索子字符串的位置
stringValue.lastIndexOf("o",6);//4=>从字符串的第六个字符向前搜索子字符串的位置
4. trim()方法
这个方法会创建一个字符串的副本,删除字符串中的所有前置和后缀空格,中间的空格不删除
例:
var stringValue = " hello world ";
var trimStringValue = stringValue.trim();// "hello world"
5. 字符串大小写转换方法
var stringValue = "hello world";
stringValue.toLowerCase();//"hello world"=>全部转化为小写
stringValue.toLocalLowerCase();//"hello world"=>全部转化为小写(针对特定地区的实现,在一些小语种下可能会与toLowerCase()有区别)
stringValue.toUpperCase();//"HELLO WORLD"=>全部转化为大写
stringValue.toLocalUpperCase();//"HELLO WORLD"=>全部转化为大写(针对特定地区的实现,在一些小语种下可能会与toUpperCase()有区别)
6. 字符串的模式匹配方法
1)match();
例:
var text = "cat, bat, sat, fat";
var pattern = /.at/ ;
var matches = text.match(pattern);//返回的是一个数组;
2)search();
例:
var text = "cat, bat, sat, fat";
var pattern = /.at/ ;
var pos= text.search(pattern);//1=>返回的是符合规则的字符串第一次出现的位置;
3)replace();
var text = "cat, bat, sat, fat";
var result = text.replace("at","one");// "cone, bat, sat, fat" 只能替换第一个匹配的字符串,而不是所有的;
var result2 = text.replace(\at\g,"one");//"cone, boneone, sone, fone"加入了正则表达式中的全局(g)标识则会替换所有的
4)split();
可以基于指定的分割符将字符串转化为数组,分隔符可以是字符串,也可以是RegExp对象,也可以指定第二个参数来控制数组的长度
例:
var colorText = "red,blue,yellow,green";
var color1 = colorText.split(",");//["red","blue","yellow","green"];
var color2 = colorText.split(",",2);//["red","blue"];
7.localCompare()方法
比较两个字符串
1)如果字符串在字母表中排在参数字符串之前则返回一个负数(大多数情况下返回-1);
2)如果字符串与参数字符串相等则返回0;
3)如果字符串在字母表中排在参数字符串之后则返回一个正数(大多数情况下返回1);
例:
var stringValue = "yellow";
stringValue.localCompare("brik");//1
stringValue.localCompare("yellow");//0
stringValue.localCompare("zoo");//-1
8.formCharCode()方法
接收一或多个字符编码,然后将它们转换为一个字符串,本质是与前面的charCodeAt()执行的是相反的操作
alert(String.formCharCode(104,101,108,108,111));//"hello"
9.HTML方法
专门用于简化常见HTML格式化任务的方法,但是尽量不用
例:
var String = "String"
String.anchor(name);//<a name="name">String</a>
String.bold();//<b>String</b>