JavaScript String(字符串)对象

1 String属性

// JavaScript中字符串有一个常用的属性length,就是获取字符串长度。
var str = 'hello world';
str.length; //长度是11

2 String常用方法

// chartAt(index)  返回指定位置的字符。
// @param   {Number}  index  必须。表示字符串中某个位置的数字,取值范围0~String.length。
//                           如果index不在取值范围之间,则返回一个空的字符串。
// @return  {String}         返回index位置的字符。
// Example
var str = 'Hello world';
str.charAt(6);               //返回 w


// chartCodeAt(index)  返回在指定的位置的字符的Unicode编码。
// @param   {Number}  index  必须。表示字符串中某个位置的数字,取值范围0~String.length。
//                           如果index不在取值范围之间,则返回一个空的字符串。
// @return  {Number}         返回index位置字符的Unicode编码。
// Example
var str = 'Hello world';
str.charAt(6);               //返回 119


// concat(str1, str2, ..., strX)  连接一个或多个字符串。
// @param   {String}  strX  必须。将要连接的一个或多个字符串对象,该参数可以有多个。
// @return  {String}        返回连接后的字符串。该函数并不会改变原有的字符串,而是创建新的字符串。
//                          JavaScript中字符串的连接可以用+实现。
// Example
var str = 'Hello ';
var str2 = 'Kevin ';
var str3 = 'Welcome to';
str.concat(str2, str3);     //返回 Hello Kevin Welcome to。其中str、str1和str2的值没有改变。


// indexOf(searchValue, fromIndex)  从前向后搜索,获取指定字符串值在字符串中首次出现的位置。
// @param   {String}  searchValue  必需。规定需检索的字符串值,大小写敏感。
// @param   {Number}  fromIndex    可选。开始检索的位置,取值范围0~String.length-1。
//                                 如省略该参数,则将从字符串的首字符开始检索。
// @return  {Number}               返回searchValue首次出现的位置,如果没有查到则返回-1。
// Example
var str = 'Hello World, Hello World.';
str.indexOf('Wo');  //返回 6
str.indexOf('js');  //返回 -1


// lastIndexOf(searchValue, fromIndex)  从后向前搜索,获取指定字符串值在字符串中最后出现的位置。
// @param   {String}  searchValue  必需。规定需检索的字符串值,大小写敏感。
// @param   {Number}  fromIndex    可选。开始检索的位置,取值范围0~String.length-1。
//                                 如省略该参数,则将从字符串的最后一个字符开始检索。
// @return  {Number}               返回searchValue最后一次出现的位置,如果没有查到则返回-1。
// Example
var str = 'Hello World, Hello World.';
str.lastIndexOf('Wo');  //返回 19
str.lastIndexOf('js');  //返回 -1


// localeCompare(compare)  用本地特有的顺序比较字符串。
// @param   {String}  compare  必需。需要比较的字符串。
// @return  {Number}           如果compare大,返回小于0的数。如果compare小,返回大于0的数。如果相等,返回0。
// Example
var str = 'bbb';
str.localeCompare('aaa');   //返回 1
str.localeCompare('ccc');   //返回 -1
str.localeCompare('bbb');   //返回 0


// match(pattern)  根据字符串或正则表达式检索。
// @param   {String/RegExp}  pattern  必需。可以是字符串或正则表达式。
// @return  {Array}                   如果匹配返回存放匹配结果的数组,否则返回null。
// Example
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
str.match(regexp);   //返回 ["A", "B", "C", "D", "E", "a", "b", "c", "d", "e"]
var value1 = 'a';
str.match(value1);   //返回 ["a"]
var value2 = 'javascript';
str.match(value2);   //返回 null


// replace(pattern, replacement)  用一些字符替换另一些字符。
// @param   {String/RegExp}    pattern      必需。可以是字符串或正则表达式。
// @param   {String/Function}  replacement  必须。可以是字符串或者函数。
// @return  {String}                        返回替换后的新字符串,该方法不改变原有字符串。
// Example
var re = /apples/gi;
var str = 'Apples are round, and apples are juicy.';
str.replace(re, 'oranges');  //返回 oranges are round, and oranges are juicy.


// search(pattern)  检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
// @param   {String/RegExp}  pattern  必需。可以是字符串或正则表达式。
// @return  {Number}                  如果检索成功,返回第一个与pattern相匹配字符串的起始位置。如果失败返回-1。
// Example
var str="Hello World!";
str.search(/World/);  //返回 6


// slice(start, end)  提取字符串start和end之间的部分。
// @param   {Number}  start  必需。子字符串的起始下标。如果是负数,则从字符串的尾部开始算起的位置。
//                           也就是说,-1是字符串的最后一个字符,-2是倒数第二个字符,以此类推。
//                           start的绝对值不能大于String.length - 1。
// @param   {Number}  end    可选。子字符串的结尾下标。若未指定此参数,则子串从start到原字符串结尾。
//                           如果是负数,则从字符串的尾部开始计算。end的绝对值不能大于String.length - 1。
//                           如果start是正数,end也必须是正数。如果start是负数,end也必须是负数。并且end必须大于start。
// @return  {String}         返回start和end之间的字符串。
// Example
var str = 'Apples are round, and apples are juicy.';
str.slice(1, 10);    //返回 pples are
str.slice(-10, -1);  //返回 are juicy


// split(separator, limit)  把字符串分割成字符串数组。
// @param   {String/RegExp}  separator  必需。可以是字符串或正则表达式。
// @param   {Number}         limit      可选。返回数组的最大长度。如果设置该参数,返回的数组最大长度为limit。
//                                      如果没有设置该参数,整个字符串都会被分割,不考虑返回数组的长度。
// @return  {Array}                     数组字符串。返回的数组中的字串不包括separator自身。
// Example
var str="张三|李四|王五|赵六";
str.split('|');     //返回 ["张三", "李四", "王五", "赵六"]
str.split('|', 3);  //返回 ["张三", "李四", "王五"]


// substr(start, length)  获取从start开始,长度为length的子字符串。
// @param   {Number}  start   必需。子字符串的起始下标。如果是负数,则从字符串的尾部开始算起的位置。
//                            也就是说,-1是字符串的最后一个字符,-2是倒数第二个字符,以此类推。
//                            start的绝对值不能大于String.length - 1。
// @param   {Number}  length  可选。子字符串的长度。若未指定此参数,则子串从start到原字符串结尾。
//                            length的值必须大于0。
// @return  {String}          返回子字符串。
// Example
var str = '张三|李四|王五|赵六';
str.substr(3, 10);   //返回 李四|王五|赵六
str.substr(-5, 10);  //返回 王五|赵六


// substring(start, end)  提取字符串start和end之间的部分。
// @param   {Number}  start  必需。子字符串的起始下标,非负整数。start的不能大于String.length-1。
// @param   {Number}  end    可选。子字符串的结尾下标,非负整数。若未指定此参数,则子串从start到原字符串结尾。
// @return  {String}         返回start和end之间的字符串。
// Example
var str = '张三|李四|王五|赵六';
str.substring(1);      //返回 三|李四|王五|赵六
str.substring(1, 10);  //返回 三|李四|王五|赵


// toLocaleLowerCase()  按照本地方式把字符串转换成小写。
//                      只有少数几种语言有本地特有的小写。大部分语言与toLowerCase()一样。
// @return  {String}  返回小写字符串。
// Example
var str = 'ABCEDEFG';
str.toLocaleLowerCase(); //返回 abcedefg


// toLocaleUpperCase()  按照本地方式把字符串转换成大写。
//                      只有少数几种语言有本地特有的大写。大部分语言与toUpperCase()一样。
// @return  {String}  返回大写字符串。
// Example
var str = 'abcdefg';
str.toLocaleUpperCase(); //返回 ABCEDEFG


// toLowerCase()  把字符串转换成小写。
// @return  {String}  返回小写字符串。
// Example
var str = 'ABCEDEFG';
str.toLowerCase(); //返回 abcedefg


// toUpperCase()  把字符串转换成大写。
// @return  {String}  返回大写字符串。
// Example
var str = 'abcdefg';
str.toUpperCase(); //返回 ABCEDEFG

3 String静态方法

// fromCharCode(code1, code2, ..., codeX)  返回在指定的位置的字符的Unicode编码。
// @param   {Number}  codeX  必须。一个或多个字符的Unicode编码,该参数可以有多个。
// @return  {String}         返回字符串。
// Example
var code1 = 65, code2 = 66, code3 = 67;
String.fromCharCode(code1, code2, code3);  //返回 ABC

4 String未提供的trim方法

在JavaScript中需要用到trim的地方很多,但是JavaScript又没有独立的trim函数或者方法可以使用。有些浏览器如chrome、ie9、ie10、firefox都已经提供了内置的trim方法。在上述浏览器中,对String可以直接使用trim。

var str = '  张三   ';
str.trim();  //返回 张三

在ie6、ie7、ie8系列浏览器中,没有内置的trim方法,可以使用第三方框架提供的trim方法。

//Ext的trim方法
var str = '  张三   ';
Ext.String.trim(str);  //返回 张三
//JQuery的trim方法
var str = '  张三   ';
$.trim(str);  //返回 张三

也可以自己实现trim方法,下面的trim方法摘自Ext源码。

// 字符串trim函数
// @param   {String}  str  需要去掉首尾空格的字符串。
// @return  {String}       返回去掉首尾空格后的字符串。
function trim(str){
	var trimRegex = /^[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+|[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+$/g;
	return str.replace(trimRegex, "");
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值