怀英漫谈8-JS的字符串和数

你好,这周想和你聊聊JS中的基本语法的另一个部分——字符串和数组的使用。这次我们先聊聊字符串和它的方法。

字符串是什么

字符串这个词你我都知道,如果猛然问被问起什么叫字符串,你我可能都不能立马反映过来。当然,这个原理你我其实都知道,只是我们平时更注重于用,忽略了定义而已。在JS中,所谓的字符串就是由单引号'',或者双引号""包裹的字符序列,比如var name='张三疯',亦或是var name="李小龙"。

字符串常用方法

我记得当初一开始接触到字符串的相关方法的时候,我是一脸的蒙圈,总感觉方法比较多,看着都累。后来遇到一些需求,写了些许的代码之后,才逐渐感到这些方法有他们存在的价值。把他们归归类,差不多是五个方面,查询、替换、截取、大小写转换、拼接。这其中用的比较多的要属于拼接方法。之所以说是拼接,是因为拼接时用的最多的不是方法str.concat(str1, str2, ...); 而是'+'号。

其它三个方法中,查询的方法我个人比较喜欢用str.indexOf(searchValue[,index]);因为这个方法既可以搜索单个字符,也可以搜索一个字符串,通用型比较高。在实际的开发中,一般会把这个indexOf这个方法封装成一个查询方法,用于查找字符串内是否有我们需要的字符。有时候还会更进一步,去查询这个字符是否是以某个字符为开头,或者以某个字符结尾的。字符串的搜索还有一种比indexOf更万能的方法,且其原理是通过正则表达式去匹配,在JS中有两个方法可以达到这个效果,一个是str.search(regexp); 还有一个是 str.match(regexp); 。search方法返回的是坐标,而match方法返回的是一个数组。因为我对正则表达式不是很熟悉,所以这两种方法用的比较少。

JS字串的替换方法只有一个str.replace(regexp|substr, newSubstr|function); 不过它很强大,尤其是和正则配合使用之后。在不使用正则之前,替换方法只能替换符合标注的第一个字符串,当使用了正则表达式并指定全局标志(g)之后,就可以替换所有符合要求的自字符串了。

JS字串中截取功能的实现方法还是挺多的,substring(beginIndex[,endIndex]), slice(beginSlice[,endSlice]), str.substr(beginIndex[,length]), str.split(separator)。这其中,对我而言,substring()用的比较多,它与substr()的区别在于第二个参数,前者的第二个参数代表了截取的位置,后者的第二个参数代表了截取的长度。slice()我用的不多,它与substring()的区别在于substring()的参数不能为负数,而slice()的是可以的,负数代表它从末尾开始的反向截取。

你可能会好奇,我为什么要把split()也算进来,它不因该单独成为一个分类么。我是这么考虑的,从中文意思上来说,将一个字符串通过其中的分隔符转换为数组,这也是截取功能的一种,只是它截取后的子类(数组的各个元素)能拼合成数组的完整的字符串而已。这个方法在一开始用ajax做数据传输的时候用的比较多,前后端约定好数组每一个位置的元素内容之后,前端就用split来切分数据了。这两年再开发的时候,更多的是用Json。它的优势是可以轻易地实现对象和字符串之间的互转。也就变相的理解为可以传递对象,使得数据开发时候的语义更加明确,便于开发,所以split用的也就越发地少了。

对了,最后一个方面是大小写替换,这个语义上清晰明了,就是两个方法,str.toLowerCase()和str.toUpperCase()。这两个方法我用的也不是很多。所以就不多说了。

今天咱们聊了字符串和它的5个方面的方法,希望能对你有所帮助,祝春祺。

清单

在JS中,所谓的字符串就是由单引号'',或者双引号""包裹的字符序列

字符串的常用方法可分为查询、替换、截取、大小写转换、拼接这五个方面。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180328G1SSOS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券