JavaScript 字符串怎么截取

想从一段文字里“揪出”一部分内容?比如把“今天吃了一碗香喷喷的红烧肉”里的“红烧肉”挑出来,或者从订单号里截出后四位查物流,用JavaScript就能轻松搞定。字符串截取是前端开发里最常用的基础操作,不用复杂代码,跟着几个简单方法就能学会,还能应对日常大部分需求。

最常用的:从固定位置开始截

如果要从字符串的某一个位置开始,一直截到最后,slice()方法是首选。它就像拿一把小剪刀,从你指定的位置“咔嚓”一下,把后面的内容全剪下来。

JavaScript 字符串怎么截取

举个生活化的例子:把“我家的猫叫年糕”里的“叫年糕”截出来,代码就是"我家的猫叫年糕".slice(4)。这里的数字4代表位置——字符串的每个字符都有自己的“位置编号”,从0开始数:第0位是“我”,第1位是“家”,第2位“的”,第3位“猫”,第4位就是“叫”,所以从这里开始截,就得到了想要的内容。

要是想从后往前数位置,也可以给slice()传负数。比如要截“手机尾号1234”的最后四位,就写"手机尾号1234".slice(-4),结果直接是“1234”,不用算前面有多少字符,特别适合处理带固定后缀的内容。

更灵活的:指定开始和结束位置

如果不想截到最后,只想取两个位置之间的内容,就用substring()。它就像给剪刀定了两个点,只剪中间的部分,不会多也不会少。

比如从“下雨天买了2个大西瓜”里截出“大西瓜”,先数位置:“买了2个”是第4到第6位,从第7位开始就是“大”,直到最后,所以代码是"下雨天买了2个大西瓜".substring(7, 10)。这里第一个数字是开始位置,第二个是结束位置,注意结果里不会包含结束位置的字符——刚才的例子里,第10位是“瓜”之后的空字符,所以刚好截到“大西瓜”。

这里有个小细节:如果开始位置比结束位置大,substring()会自动把两个数字调换顺序,比如substring(5,2)会变成substring(2,5),不会出错,用起来更省心。

处理老代码的选择:substr()

还有个substr()方法,很多老代码里会用到,它的用法是字符串.substr(开始位置, 要截的长度)。同样用刚才的西瓜例子,要截3个字符(“大西瓜”一共3个),代码就是"下雨天买了2个大西瓜".substr(7, 3),结果和之前的一样。不过这个方法已经被列为“即将废弃”的特性,新代码建议用前面两种方法,避免后续出现兼容性问题。

避坑小提醒

日常使用时要注意两个容易踩的小坑:第一,不管用哪个方法,都要确保给的位置在字符串范围内——如果要截的位置比字符串总长度还大,会返回空字符串,不会报错;第二,负数在slice()里是从后数位置,但在substring()里,负数会直接变成0,不会从后数,别搞混。

学会这三个方法,日常遇到的字符串截取需求基本都能搞定。不管是处理用户输入的昵称、截取订单号的关键部分,还是在页面里展示摘要,用这些简单的代码就能轻松实现,不用再为怎么“揪出”想要的内容发愁。

上一篇 PHP 如何安装扩展