当前位置: 首页 > 科技观察

javascript操作字符串总结

时间:2023-03-12 10:16:24 科技观察

最近参加前端实习生招聘笔试,发现很多笔试题都会考到字符串的处理,比如去哪儿在线笔试题,淘宝笔试题等,如果你经常笔试或者是过去的人,相信你和我一样,发现字符串的处理是前端招聘过程中最常见的题型之一.这些题有一个特点,从考官的角度看,不在于你知不知道,而在于你能不能在不借xx手册或xx指南或百度谷歌的情况下把答案写得更简洁。遗憾的是很多开发者,当然我也是其中之一,对于很多经常使用的字符串处理函数,都不能牢牢记住它们的用法,不得不求助于xx手册或者xx指南或者百度谷歌。这样做的结果是,这些非常关键的基础知识还不够扎实,遇到这些题,还得用n层嵌套的for循环来一一遍历。这是一个信号。当你在做这类题的时候发现你用了太多的for循环,那就注意了,很有可能是你写错了。不要小看这些东西,它们可能对求职和日常发展起到很大的作用。好了,废话不多说,下面一一总结。难免有遗漏。如果您碰巧知道了,请添加或私信。1.字符串转换字符串转换是最基本的要求和工作。您可以将任何类型的数据转换为字符串。您可以使用以下三种方法中的任何一种:varnum=19;//19varmystr=num.tostring;//"19"你也可以这样做:varnum=19;//19varmystr=string(num);//"19"或者,更简单:varnum=19;//19varmystr=""+num;//"19"2.字符串拆分字符串拆分就是将一个字符串拆分成多个字符串。JavaScript为我们提供了一个非常方便的函数,比如:varmystr="i,love,you,do,you,love,me";varsubstrarray=mystr.split(",");//["i","love","you","do","you","love","me"];vararraylimited=mystr.split(",",3);//[“我爱你”];split的第二个参数,表示返回的字符串数组的最大长度。3、获取字符串长度字符串长度在开发中经常用到,很简单如下:varmystr="i,love,you,do,you,love,me";varmystrlength=mystr.length;//254、querysubstring很多人会忘记javascript自带的这些方法,或者忘记它们的具体用法,以至于做题的时候不得不嵌套for循环。第一个函数:indexof,它从字符串的开头开始查找,找到就返回对应的坐标,找不到就返回-1。如下:varmystr="i,love,you,do,you,love,me";varindex=mystr.indexof("you");//7、以0为基础,第二个返回-1函数:lastindexof,从字符串末尾开始查找,找到则返回对应坐标,找不到则返回-1。如下:varmystr="i,love,you,do,you,love,me";varindex=mystr.lastindexof("you");//上面两个函数还接收第二个可选参数,表示从哪里开始查找。5.字符串替换仅仅找到字符串应该不会停下来。在一般题中,经常会遇到可以自己查找替换的字符串,例如:varmystr="i,love,you,do,you,love,me";varreplacedstr=mystr.replace("love","hate");//"i,hate,you,do,you,love,me"默认只替换第一个搜索是的,如果你想全局替换,你需要设置一个常规的全局标志,比如as:varmystr="i,love,you,do,you,love,me";varreplacedstr=mystr.replace(/love/g,"hate");//"i,hate,you,do,you,hate,me"要找到给定位置的字符,可以使用以下函数:varmystr="i,love,you,do,you,love,me";varthechar=mystr.charat(8);//"o",也是从0开始同理,它的一个兄弟函数是查找对应位置的字符编码值,如:varmystr="i,love,you,do,you,love,me";varthechar=mystr.charcodeat(8);//1117。字符串连接操作可以像加法运算一样简单,如:varstr1="i,love,you!";varstr2="do,you,love,me?";varstr=str1+str2+"yes!";//"i,love,you!do,you,love,me?yes!"同样,javascript也自带相关函数,如:varstr1="i,love,you!";varstr2="你爱我吗?";varstr=str1.concat(str2);//“我,爱你!do,you,love,me?”其中,concat函数可以有多个参数,可以传递多个字符串,可以拼接多个字符串8.strings方法中可以提取和切割的字符串切割和提取有3种,比如as:首先,使用slice:varmystr="i,love,you,do,you,love,me";varsubstr=mystr.slice(1,5);//",lov"第二种,使用substring:varmystr="i,love,you,do,you,love,me";varsubstr=mystr.substring(1,5);//",lov"第三种,使用substr:varmystr="i,love,you,do,you,love,me";varsubstr=mystr.substr(1,5);//"love"不同于first和second,substr的第二个参数代表的最大长度截取的字符串,如上结果所示。9.字符串大小写转换常用的字符串转换为大写或小写的函数如下:love,you,do,you,love,me";varupcasestr=mystr.touppercase;//"i,love,you,do,you,love,me"10.字符串匹配字符串匹配可能需要你有一定的正则表达式的理解,先看match函数:varmystr="i,love,you,do,you,love,me";varpattern=/love/;varresult=mystr.match(pattern);//["love"]console.log(result.index);//2console.log(result.input);//i,love,you,do,you,love,me可以看到,match函数调用在一个字符串,并接受一个常规参数。我们来看第二个例子,使用exec函数:varmystr="i,love,you,do,you,love,me";varpattern=/love/;varresult=pattern.exec(mystr);//["love"]console.log(result.index);//2console.log(result.input);//i,love,you,do,you,love,me简单的,就把regular和string了position改变了,也就是在regular上调用了exec函数,传递的是字符串的参数。以上两种方法,匹配结果都是返回第一个匹配成功的字符串,匹配失败则返回null。再看一个类似的方法搜索,比如:varmystr="i,love,you,do,you,love,me";varpattern=/love/;varresult=mystr.search(pattern);//2只返回找到匹配的下标,匹配失败则返回-1.11,字符串比较比较两个字符串,比较规则是按字母顺序比较,如:varmystr="chicken";varmystrtwo="egg";varfirst=mystr.localecompare(mystrtwo);//-1first=mystr.localecompare("chicken");//0first=mystr.localecompare("apple");//112.比如我们看一道前端笔试题,来自去哪儿网,相信很多小朋友都做过这道题。题目:写一个getsuffix函数,获取输入参数的后缀名,例如输入abcd.txt,返回txt。附上我的答案:functiongetsuffix(file){returnfile.slice(file.lastindexof(".")+1,file.length);}