11、javascript中字符串常用操作总结、JS字符串操作大全

来源:互联网 发布:apache 重写功能 编辑:程序博客网 时间:2024/06/06 01:59


String对象属性

(1) length属性

length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度。当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不一样。


var str = 'abc';console.log(str.length);


(2) prototype属性

prototype在面向对象编程中会经常用到,用来给对象添加属性或方法,并且添加的方法或属性在所有的实例上共享。因此也常用来扩展js内置对象,如下面的代码给字符串添加了一个去除两边空格的方法:


String.prototype.trim = function(){    return this.replace(/^\s*|\s*$/g, '');}


String对象方法

1.获取类方法

(1) charAt()


stringObject.charAt(index)


charAt()方法可用来获取指定位置的字符串,index为字符串索引值,从0开始到string.leng – 1,若不在这个范围将返回一个空字符串。如:


var str = 'abcde';console.log(str.charAt(2));     //返回cconsole.log(str.charAt(8));     //返回空字符串


(2) charCodeAt()


stringObject.charCodeAt(index)


charCodeAt()方法可返回指定位置的字符的Unicode编码。charCodeAt()方法与charAt()方法类似,都需要传入一个索引值作为参数,区别是前者返回指定位置的字符的编码,而后者返回的是字符子串。


var str = 'abcde';console.log(str.charCodeAt(0));     //返回97


(3) fromCharCode()


String.fromCharCode(numX,numX,…,numX)


fromCharCode()可接受一个或多个Unicode值,然后返回一个字符串。另外该方法是String 的静态方法,字符串中的每个字符都由单独的数字Unicode编码指定。


String.fromCharCode(97, 98, 99, 100, 101)   //返回abcde


2.查找类方法

(1) indexOf()


stringObject.indexOf(searchvalue,fromindex)


indexOf()用来检索指定的字符串值在字符串中首次出现的位置。它可以接收两个参数,searchvalue表示要查找的子字符串,fromindex表示查找的开始位置,省略的话则从开始位置进行检索。


var str = 'abcdeabcde';console.log(str.indexOf('a'));  // 返回0console.log(str.indexOf('a', 3));   // 返回5console.log(str.indexOf('bc')); // 返回1


(2) lastIndexOf()方法


stringObject.lastIndexOf(searchvalue,fromindex)


lastIndexOf()语法与indexOf()类似,它返回的是一个指定的子字符串值最后出现的位置,其检索顺序是从后向前。


var str = 'abcdeabcde';console.log(str.lastIndexOf('a'));  // 返回5console.log(str.lastIndexOf('a', 3));   // 返回0 从第索引3的位置往前检索console.log(str.lastIndexOf('bc')); // 返回6


(3) search()方法


stringObject.search(substr) stringObject.search(regexp)


search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。它会返回第一个匹配的子字符串的起始位置,如果没有匹配的,则返回-1。


var str = 'abcDEF';console.log(str.search('c'));   //返回2console.log(str.search('d'));   //返回-1console.log(str.search(/d/i));  //返回3


(4) match()方法


stringObject.match(substr) stringObject.match(regexp)


match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

如果参数中传入的是子字符串或是没有进行全局匹配的正则表达式,那么match()方法会从开始位置执行一次匹配,如果没有匹配到结果,则返回null。否则则会返回一个数组,该数组的第0个元素存放的是匹配文本,除此之外,返回的数组还含有两个对象属性index和input,分别表示匹配文本的起始字符索引和stringObject 的引用(即原字符串)。


var str = '1a2b3c4d5e';console.log(str.match('h'));    //返回nullconsole.log(str.match('b'));    //返回["b", index: 3, input: "1a2b3c4d5e"]console.log(str.match(/b/));    //返回["b", index: 3, input: "1a2b3c4d5e"]


如果参数传入的是具有全局匹配的正则表达式,那么match()从开始位置进行多次匹配,直到最后。如果没有匹配到结果,则返回null。否则则会返回一个数组,数组中存放所有符合要求的子字符串,并且没有index和input属性。


var str = '1a2b3c4d5e';console.log(str.match(/h/g));   //返回nullconsole.log(str.match(/\d/g));  //返回["1", "2", "3", "4", "5"]


3.截取类方法

(1) substring()


stringObject.substring(start,end)


substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值),分别是要截取的开始位置和结束位置,它将返回一个新的字符串,其内容是从start处到end-1处的所有字符。若结束参数(end)省略,则表示从start位置一直截取到最后。


var str = 'abcdefg';console.log(str.substring(1, 4));   //返回bcdconsole.log(str.substring(1));  //返回bcdefgconsole.log(str.substring(-1)); //返回abcdefg,传入负值时会视为0


(2) slice()


stringObject.slice(start,end)


slice()方法与substring()方法非常类似,它传入的两个参数也分别对应着开始位置和结束位置。而区别在于,slice()中的参数可以为负值,如果参数是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符。


var str = 'abcdefg';console.log(str.slice(1, 4));   //返回bcdconsole.log(str.slice(-3, -1)); //返回efconsole.log(str.slice(1, -1));  //返回bcdefconsole.log(str.slice(-1, -3)); //返回空字符串,若传入的参数有问题,则返回空


(3) substr()


stringObject.substr(start,length)


substr()方法可在字符串中抽取从start下标开始的指定数目的字符。其返回值为一个字符串,包含从 stringObject的start(包括start所指的字符)处开始的length个字符。如果没有指定 length,那么返回的字符串包含从start到stringObject的结尾的字符。另外如果start为负数,则表示从字符串尾部开始算起。


var str = 'abcdefg';console.log(str.substr(1, 3))   //返回bcdconsole.log(str.substr(2))  //返回cdefgconsole.log(str.substr(-2, 4))  //返回fg,目标长度较大的话,以实际截取的长度为准


4.其他方法

(1) replace()方法


stringObject.replace(regexp/substr,replacement)


replace()方法用来进行字符串替换操作,它可以接收两个参数,前者为被替换的子字符串(可以是正则),后者为用来替换的文本。

如果第一个参数传入的是子字符串或是没有进行全局匹配的正则表达式,那么replace()方法将只进行一次替换(即替换最前面的),返回经过一次替换后的结果字符串。


var str = 'abcdeabcde';console.log(str.replace('a', 'A'));console.log(str.replace(/a/, 'A'));


如果第一个参数传入的全局匹配的正则表达式,那么replace()将会对符合条件的子字符串进行多次替换,最后返回经过多次替换的结果字符串。


var str = 'abcdeabcdeABCDE';console.log(str.replace(/a/g, 'A'));    //返回AbcdeAbcdeABCDEconsole.log(str.replace(/a/gi, '$'));   //返回$bcde$bcde$BCDE


(2) split()方法


stringObject.split(separator,howmany)


split()方法用于把一个字符串分割成字符串数组。第一个参数separator表示分割位置(参考符),第二个参数howmany表示返回数组的允许最大长度(一般情况下不设置)。


var str = 'a|b|c|d|e';console.log(str.split('|'));    //返回["a", "b", "c", "d", "e"]console.log(str.split('|', 3)); //返回["a", "b", "c"]console.log(str.split('')); //返回["a", "|", "b", "|", "c", "|", "d", "|", "e"]


也可以用正则来进行分割


var str = 'a1b2c3d4e';console.log(str.split(/\d/)); //返回["a", "b", "c", "d", "e"]


(3) toLowerCase()和toUpperCase()


stringObject.toLowerCase() stringObject.toUpperCase()


toLowerCase()方法可以把字符串中的大写字母转换为小写,toUpperCase()方法可以把字符串中的小写字母转换为大写。


var str = 'JavaScript';console.log(str.toLowerCase()); //返回javascriptconsole.log(str.toUpperCase()); //返回JAVASCRIPT
原文链接地址:点击打开链接

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 京东快递提货码数手机号错了怎么办 腾讯手游助手不能玩刺激战场怎么办 刚收的京东快递质量有问题怎么办 拼多多买家接受信息没有声音怎么办 苹果6s外放声音有杂音怎么办 华为手机不小心把视频删了怎么办 电脑做完系统不显示声卡了怎么办 苹果手机自带浏览器看视频卡怎么办 pr剪辑的时候视频太卡怎么办 小米手机忘记登录账号密码了怎么办 石膏线条软模硅胶模具气泡多怎么办 京东白条开通失败怎么办金牌用户 买家说我运费险没赔要投诉我怎么办 包邮有运费险的东西想退货怎么办 高锰酸钾沾到龟头上形成黑点怎么办 淘宝发货包邮买家退款运费怎么办 京东实名认证的手机号不用了怎么办 淘宝退货在自提柜 卖家不取怎么办 如果买家退货那卖家送的东西怎么办 陆金所注册手机号被占用要怎么办 重新登录而忘记密码和验证码怎么办 手机清理垃圾清掉的照片怎么办 收件人名字写错了拿不到快递怎么办 档案回原籍收件人写错了怎么办 寄申通快递收件人电话写错了怎么办 第三方支付倒闭了用户的钱怎么办啊 京东配送日期内货没送到家怎么办 拼多多拼单不成功优惠券退吗怎么办 退货退错了不发回来怎么办 商家总是不发退货地址过来怎么办 美团外卖下单后电话没改怎么办 从日本邮寄东西到中国被扣怎么办 淘宝拒收卖家收到货不退款怎么办 拒收的快递丢了卖家拒绝退款怎么办 京东买了东西超过七天想退货怎么办 微信买东西支付宝付款被骗怎么办 京东购物己付款卖家没发货怎么办 天猫先行退款卖家拒收怎么办 京东金条提前还款借不了怎么办 网银密码输入六次错误怎么办 迷失在时间和空间的交界处该怎么办