string有哪些方法:贴合实操场景按需调用各类字符串处理方法
刚上手写代码的时候,最头疼的就是分不清string有哪些方法,一堆功能看着大同小异,随便瞎用导致页面报错、数据匹配失败,白白浪费大半天调试时间。后来靠着一次次实操踩练,慢慢摸清了所有常用string方法的真实用法,没有花哨的理论,全是项目里实打实能用出来的操作。
很多人初学会把string方法和普通变量操作混为一谈,以为所有字符串修改都能直接改变原数据。其实根本不是一回事,所有string方法全部不会修改原字符串,不管你做截取、替换、拼接,最终都必须用新变量接收结果,这是我第一次写字符串处理代码踩的最大的误区。当时写表单校验,反复修改代码却一直取不到正确文本,排查半小时才发现,一直操作了原字符串,新结果没有任何接收,所有修改全部无效。
截取类的string方法是日常用的最多的,也是最容易用混的。slice、substring、substr这三个方法看着功能一致,实际适配场景完全不同。slice支持正负参数,正数从左截取,负数从尾部倒数截取,适配绝大多数常规截取场景,兼容性最好。substring会自动把负数参数转为0,只适合正向固定区间截取。substr现在已经不被主流标准推荐使用,只保留了兼容写法,新项目完全没必要用。上次处理用户昵称脱敏,用slice(-4)直接截取最后四位字符,一行代码搞定,比另外两个方法简洁太多。
查找匹配类方法是数据筛选、文本校验的核心。indexOf可以查找字符首次出现的下标,找不到就返回-1,日常用来判断字符串是否包含指定内容完全够用。includes功能更直观,直接返回布尔值,不用再判断返回值是否为-1,做简单的包含校验首选这个方法。还有startsWith和endsWith,专门判断字符串是否以指定字符开头、结尾,之前做链接校验时,用startsWith快速筛选https开头的合法链接,筛选效率比遍历匹配高很多。
替换和清理类方法,是处理脏数据的刚需。replace最初我只会写单个字符替换,后来才发现搭配正则可以批量替换所有指定字符,不然默认只能替换第一个匹配到的内容,批量处理文本空格、特殊符号的时候完全没用。trim是极简的清理方法,专门去除字符串首尾空格,表单输入、用户提交文本的去空格操作,全程只用这一个方法就够,不用自己写复杂的清理逻辑。
分割和转换方法,是字符串和数组互转的关键。split可以按照指定字符分割字符串,把一整段文本拆分成数组,日常处理逗号、空格分隔的批量数据,基本离不开这个方法。toLowerCase和toUpperCase负责大小写转换,做验证码、关键词匹配的时候,统一文本大小写,能规避很多大小写不匹配的校验bug。
还有补位、去重、匹配类的小众方法,平时用的少,但特定场景缺一不可。padStart、padEnd用来给字符串首尾补全字符,处理日期、编号格式化特别方便,比如把数字1补成001格式。match可以搭配正则提取字符串里的数字、字母,之前提取文本中的手机号、数字编号,全靠这个方法快速抓取有效内容。
不用死记硬背所有string方法,大部分冷门功能日常开发根本用不到。只要分清截取、查找、替换、分割、格式转换五大类,每个类别记住主流可用的方法,适配对应的业务场景,就足以应对99%的字符串处理需求。
现在处理任何字符串问题,都会先判断业务需求,再精准匹配对应string方法,不会再盲目堆砌代码。最近一次实操,是批量整理后台返回的杂乱文本数据,依次用trim去空格、split分割、slice截取有效内容、toLowerCase统一格式,全程没有多余代码,一次性完成所有数据规整。