这篇文章主要介绍了 JavaScript 字符串常用的方法 的相关资料, 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
获取类:
1)动态方法:
charAt : 获取字符串指定位置上的字符。(参数:一个,指定要获取的字符位置)
1,不接受负数,如果为负数,会返回一个空字符串。
2,如果不给参数,默认是获取第 0 位置上的字符。
3,只接收一个参数。
charCodeAt : 获取字符串中指定位置上字符的 Unicode 编码(参数: 一个,指定要获取字符编码的字符位置)
1,任何字符都有一个唯一的字符编码。
2,只接收一个参数。
常用:
数字 : 48 ~ 57
下划线 : 95
空格 : 32
制表符 : 9
小写字母 :97 ~ 122
大写字母 : 65 ~ 90
2)静态方法:
fromCharCode : 根据指定的字符编码返回对应的字符。(参数: 任意多个)
1,可以接收多个参数。
2,写法是固定的(静态方法):String.fromCharCode(); // 字符编码有效范围 : 0 ~ 65535 String 是字符串的对象
- var str = '我是字符串';
- alert(str.charAt()); //'' 如果本身长度只有,却找str.charAt() 找不到也是空字符串'',~str.length-是合法范围。
- alert(str.charAt()); //'我' 默认不写是,找到第一个字符
- alert(str.charAt()); // '字'
- alert(''.charAt()); //
- alert(''.charAt(, )); //
- alert(str.charCodeAt()); // unicode编码
- alert(''.charCodeAt()); //
- alert(String.fromCharCode(, )); //'字味' 根据编码转换成字符(静态方法)多个字符用 , 隔开
查找类:
indexOf : 查找指定的子字符串在字符串中第一次出现的位置。(第一个参数,指定要查找的子字符串;第二个参数指定开始查找的位置。)
1,从前往后查找,默认从第 0 位置开始。
2,如果找到了,就返回第一次被查找到的位置,如果没有找到,就返回 -1。
3,如果第二个参数为负数,默认当成 0 来处理
lastIndexOf : 查找指定的子字符串在字符串中最后一次出现的位置。(第一个参数,指定要查找的子字符串;第二个参数指定开始查找的位置。)
1,从后往前查找,默认从第 length - 1 位置开始。
2,如果找到了,就返回第一次被查找到的位置,如果没有找到,就返回 -1。
- var str = 'www.baidu.com/';
- alert(str.indexOf('bai')); // 从左往右找找到一个就返回不会再往右找了
- alert(str.indexOf('m', )) // 从第位开始向右找
- alert(str.indexOf('X')) //- 不存在的话结果是 - 表示没找到
- alert(str.lastIndexOf('ww')); //
截取类:
substring : 提取指定范围的一段子字符串。(第一个参数,指定要提取的开始位置;第二个参数,指定要提取的结束位置。)
1,提取范围包括开始位置,但是不包括结束位置。
2,可以省略第二个参数,表示从开始位置提取到字符串结束
3,在提取之前会先比较两个参数的大小,然后按从小到大的顺序调整参数位置,再提取。
4,所有的非法参数都会自动转化成 0.
5,如果不给参数,默认直接返回整个字符串。
slice : 提取指定范围的一段子字符串。(第一个参数,指定要提取的开始位置;第二个参数,指定要提取的结束位置。)
1,提取范围包括开始位置,但是不包括结束位置。
2,可以省略第二个参数,表示从开始位置提取到字符串结束
3,不会比较两个参数的位置,更不会调整位置的位置
4,参数可以是正数,也可以是负数,其它所有非法参数都会转换成 0。
5,负数表示从字符串的后面往前数字符位置,最一个字符的位置是 -1。
- var str = '我是字符串';
- alert(str.substring()); //'我是字符串'
- alert(str.substring( - , )); //'我'
- alert(str.substring()); //字符串
- alert(str.substring(, )); //'我是' 与str.substring(,)是一样的。可以检测两个数,大的往后仍,小的往前仍。负数当成来处理。
- alert(str.slice(, )); //空白 找不到,不交换位置
- alert(str.slice( - )); //'符串' 负数就是从后面倒着往前数
比较类:
alert('我'>'你'); //true 字符串比较就比较第一个字符对应的 Unicode 值大小,后边的就不比较了。
其他类:
alert(str.length); // 获取字符串长度
split() // 把字符串切成数组
参数: 一个 指定一个分割符用来分割字符串。
1,如果不指定分割符,就不会分割,直接存入数组。
2,以分割符为依据,把分割符左右两边的值分别存入数组。
3,分割符本身不会存入数组。
4,分割符只能是字符串中存在的子字符串。
5,在 split 看来,两个字符之间必须依靠空字符串连接。
6,当用空字符串去分割空字符串的时候,会得到一个空数组。
- var str = '';
- alert(typeof str); //string
- alert(typeof str.split()); //object
- alert(str.split().length); //['']
- alert(str.split('')); //['','']
- alert(str.split('a')); //['']
- alert(str.split('')); //['','']
- alert(str.split('').length); //['','','','']
- alert(str.split('')); //['','','','']
- //'' 由五个 '' 加 四个字符组成
- alert(str.split('')); //['','']
- alert(str.split('')); //['','']
- alert(''.split(' ').length); //['']
- alert(''.split('').length); //[]
- //特例,只有这种情况下 split 才会返回空数组。
trim() : 去除字符串首尾的所有空格。(字符串中间的空格会保留)。
html5 的新方法,低版本浏览器不支持。
toUpperCase() : 把字符串全部转换成大写。(没有参数)
toLowerCase() : 把字符串全部转换成小写。(没有参数)
最后,所有的字符串方法,都不会修改字符串本身。
javascript 字符串连接类
在我们写前端的 js 时,经常会出现将很多的字符串通过 "+" 拼接起来,然后挂载的某个 DOM 元素上。然而关于使用 "+" 来拼接字符串,在各浏览器下解析的效果,我就在此不做对比了,网上这类的对比很多。很多牛人都说通过使用 js 中的 Array 的 join 方法来拼接字符串效果很不错。为此在项目中写一个 js 类,用来统一处理字符串的拼接。
代码
- //自定义的一个字符串连接类,用于拼接字符串,比"+"要提升性能function StringBuffer()
- {
- this._strs = new Array();
- }StringBuffer.prototype.append = function(str)
- {
- this._strs.push(str);
- };StringBuffer.prototype.arrayToString = function()
- {
- return this._strs.join("");
- };
而我们在使用该类时,可以直接通过如下方法:
- var strBuff = new StringBuffer();
- strBuff.append("hello,");
- strBuff.append("Welcome to Javascript!");
- alert(strBuff.arrayToString());
来源: http://www.phperz.com/article/17/0224/266748.html