马海祥博客是一个专注于分享SEO优化、网站制作、网络营销和运营思维的自媒体博客!
收藏本站 TAG标签 网站地图 RSS地图
马海祥博客 > 网站制作 > js教程 > 常用的JavaScript字符串处理函数及用法

常用的JavaScript字符串处理函数及用法

时间:2015-05-03   文章来源:马海祥博客   访问次数:

最近参加了几次前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题、淘宝的笔试题等,如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最常见的题型之一。

常用的JavaScript字符串处理函数及用法-马海祥博客

这些题有一个特点,站在考官的角度去考虑,它考的不是你会不会,而是你能不能在不借用XX手册或者XX指南再或者百度谷歌的情况下(比如我曾对javascript对象属性做过一个简单的教程指南,以便自己用到时查找方便,具体可查看马海祥《 javascript对象属性的基础教程指南》的相关介绍),用比较简洁的方式写出答案来。

可惜的是,很多开发人员(当然我也是其中一员),对于很多经常用到的字符串处理函数却不能牢牢记住他们的用法,总不得不去求助于XX手册或者XX指南再或者百度谷歌,而这样做的结果就是,这些非常关键的基础知识却夯的不足够结实,在遇到这些题的时候不得不用N层嵌套的for循环去逐个遍历。

这是个信号,当你发现你在做这种类型的题的时候,用的for循环过多,那么注意了,很有可能你已经写偏了,别小看了这些东西,没准在找工作和平常开发中起到大作用,好了,不多说了,今天我就在马海祥博客的平台上跟大家挨个总结一下:

1、字符串转换

字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种:

var num= 19; // 19
  var myStr = num.toString(); // "19"

你同样可以这么做:

var num= 19; // 19
  var myStr = String(num); // "19"

或者,再简单点儿:

var num= 19; // 19
  var myStr = "" +num; // "19"

2、字符串分割

字符串分割,即将一个字符串分割为多个字符串,JavaScript中给我们提供了一个非常方便的函数,如:

var myStr = "I,Love,You,Do,you,love,me";
  var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"];
  var arrayLimited = myStr .split(",", 3); // ["I", "Love", "You"];

split()的第二个参数,表示返回的字符串数组的最大长度。

3、获取字符串长度

字符串长度是在开发中经常要用到的,非常简单如下:

var myStr = "I,Love,You,Do,you,love,me";
  var myStrLength = myStr.length; //25

4、查询子字符串

很多人都会忘记这几个JavaScript的自带的方法,或者忘记它们的具体用法,从而导致在做题的时候不得不嵌套for循环来做。

第一个函数:indexOf(),它从字符串的开头开始查找,找到返回对应坐标,找不到返回-1,如下:

var myStr = "I,Love,you,Do,you,love,me";
  var index = myStr.indexOf("you"); // 7 ,基于0开始,找不到返回-1

第二个函数:lastIndexOf(),它从字符串的末尾开始查找,找到返回对应坐标,找不到返回-1,如下:

var myStr = "I,Love,you,Do,you,love,me";
  var index = myStr.lastIndexOf("you"); // 14

以上两个函数同样接收第二个可选的参数,表示开始查找的位置。

5、字符串替换

单单查到字符串应该还不会停止,一般题目都还经常会遇到让你查到并替换为你自己的字符串,例如:

var myStr = "I,love,you,Do,you,love,me";
  var replacedStr = myStr.replace("love","hate");//"I,hate,you,Do,you,love,me"

默认只替换第一次查找到的,想要全局替换,需要置上正则全局标识,如:

var myStr = "I,love,you,Do,you,love,me";
  var replacedStr = myStr.replace(/love/g,"hate");//"I,hate,you,Do,you,hate,me"

6、查找给定位置的字符或其字符编码值

想要查找给定位置的字符,你可以使用如下函数:

var myStr = "I,love,you,Do,you,love,me";
  var theChar = myStr.charAt(8);// "o",同样从0开始

同样,它的一个兄弟函数就是查找对应位置的字符编码值,如:

var myStr = "I,love,you,Do,you,love,me";
  var theChar = myStr.charCodeAt(8); //111

7、字符串连接

字符串连接操作可以简单到用一个加法运算符搞定,如:

var str1 = "I,love,you!";
  var str2 = "Do,you,love,me?";
  var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me?Yes!"

同样,JavaScript也自带了相关的函数,如:

var str1 = "I,love,you!";
  var str2 = "Do,you,love,me?";
  var str = str1.concat(str2);//"I,love,you!Do,you,love,me?"

其中concat()函数可以有多个参数,传递多个字符串,拼接多个字符串。

8、字符串切割和提取

有三种可以从字符串中抽取和切割的方法,如:

第一种,使用slice():

var myStr = "I,love,you,Do,you,love,me";
  var subStr = myStr.slice(1,5);//",lov"

第二种,使用substring():

var myStr = "I,love,you,Do,you,love,me";
  var subStr = myStr.substring(1,5); //",lov"

第三种,使用substr():

var myStr = "I,love,you,Do,you,love,me";
  var subStr = myStr.substr(1,5); //",love"

与第一种和第二种不同的是,substr()第二个参数代表截取的字符串最大长度,如上结果所示。

9、字符串大小写转换

常用的转换为大写或者小写字符串函数,如下:

var myStr = "I,love,you,Do,you,love,me";
  var lowCaseStr = myStr.toLowerCase();//"i,love,you,do,you,love,me";
  var upCaseStr = myStr.toUpperCase();//"I,LOVE,YOU,DO,YOU,LOVE,ME"

10、字符串匹配

字符串匹配可能需要你对正则表达式有一定的了解,先来看看match()函数:

var myStr = "I,love,you,Do,you,love,me";
  var pattern = /love/;
  var result = myStr.match(pattern);//["love"]
  console.log(result .index);//2
  console.log(result.input );//I,love,you,Do,you,love,me

如你所见,match()函数在字符串上调用,并且接受一个正则的参数。来看看第二个例子,使用exec()函数:

var myStr = "I,love,you,Do,you,love,me";
  var pattern = /love/;
  var result = pattern .exec(myStr);//["love"]
  console.log(result .index);//2
  console.log(result.input );//I,love,you,Do,you,love,me

简单吧,仅仅是把正则和字符串换了个位置,即exec()函数是在正则上调用,传递字符串的参数,对于上面两个方法,匹配的结果都是返回第一个匹配成功的字符串,如果匹配失败则返回null.

再来看一个类似的方法search(),如:

var myStr = "I,love,you,Do,you,love,me";
  var pattern = /love/;
  var result = myStr.search(pattern);//2

仅返回查到的匹配的下标,如果匹配失败则返回-1.

11、字符串比较

比较两个字符串,比较是规则是按照字母表顺序比较的,如:

var myStr = "chicken";
  var myStrTwo = "egg";
  var first = myStr.localeCompare(myStrTwo); // -1
  first = myStr.localeCompare("chicken"); // 0
  first = myStr.localeCompare("apple"); // 1

12、举例

最后我们来看一道前端笔试题,去哪儿网的,相信很多程序都做到过这个题了,题目:写一个getSuffix函数,用于获得输入参数的后缀名,例如输入abcd.txt,返回txt,附上我的答案:

function getSuffix(file){
       return file.slice(file.lastIndexOf(".") + 1,file.length);
  }

相信JavaScript中字符串操作的函数应该不止这几个,但是上面列的这些应该都是非常常用的,如果有哪些需要补充的,欢迎补充!希望看到这些以后,再面对字符串的笔试面试题你能非常从容的面对。

马海祥博客点评:

字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更多,JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等。

本文发布于 马海祥博客文章,如想转载,请注明原文网址摘自于http://www.mahaixiang.cn/js/1146.html,注明出处;否则,禁止转载;谢谢配合!

相关标签搜索: JavaScript   字符串  

上一篇: 详解JavaScript中的事件处理
下一篇: JavaScript开发者新手经常忽略或误用的基础知识点

您可能还会对以下这些文章感兴趣!

  • JavaScript对象属性的基础教程指南

    JavaScript是使用对象化编程的,或者叫面向对象编程的。所谓对象化编程,意思是把JavaScript能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编程都以对象为出发点,基于对象,小到一个变量,大到网页文档、窗口甚至屏幕,都是对象。……【 查看全文】

    阅读:1315关键词: js教程    JavaScript    js对象    js属性    js指南   日期:2014-03-13
  • JavaScript开发者新手经常忽略或误用的基础知识点

    JavaScript本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它,昨天我们将这些模式应用到了JavaScript框架中,今天这些框架又驱动了我们的Web应用程序。很多新手开发者被各种强大的JavaScript框架吸引进来,但却忽略了框架身后浩如星海的JavaScript……【 查看全文】

    阅读:637关键词: javascript    开发者   日期:2016-07-03
  • Javascript教程:js异步模式编程的4种解决方法

    随着人们对网站视觉效果及用户体验的要求越来越高,所以在未来网站的建设中,设计师们开始越来越多的使用了js文件来达到预期的效果,随着js文件的越来越多,令设计师们最头痛的事情也就来了,那就是Javascript语言的执行环境是单线程(single thread)。 所谓单线程,就……【 查看全文】

    阅读:5145关键词: Javascript    js教程    异步模式    js编程   日期:2013-09-03
  • 常见JS挂马方法及如何防止网站被黑客挂马?

    最近有朋友说自己的网站平时并未作弊,文章也都是原创的,更新很稳定。可不知道为什么网站突然就被各大搜索引擎降权了,一直找不到原因。最后发现是网站被挂马了,导致网站被连累了。在此,借助马海祥博客的平台,给大家简单的介绍下js挂马的方法及如何防止网站被挂马……【 查看全文】

    阅读:1985关键词: JS挂马    防止网站挂马    常见挂马方法   日期:2012-10-26
  • 推荐一种测试JavaScript执行性能和性能比较的方法

    随着越来越多的站长对网站形象方面的关注,js文件也使用的越来越多了,于是乎一些细心的seo优化人员也开始重视JavaScript 的性能问题了,同时也导致了越来越多的 JS 性能测试框架和一些工具诞生,比如说 JSLitmus、jsperf 等等,由于本人对JavaScript方面的知识掌握的也……【 查看全文】

    阅读:7003关键词: JavaScript    js文件    JS性能比较   日期:2013-05-12
  • 最新挂木马的10大操作方法

    最近看了很多博友反馈的问题,发现最近一周谈论最多的问题就是js挂马的问题。问题也大多集中在如何挂马、挂马的方法有哪些?挂马的效果和如何防止自己网站被挂木马。并根据自己多年做网站的经验汇总了10条网站挂木马的常用的一些代码写法。在此给大家介绍一下具体代码……【 查看全文】

    阅读:1218关键词: 挂马    最新挂木马方    挂马操作方法    最新挂马方法   日期:2013-05-20
  • 常用的JavaScript字符串处理函数及用法

    最近参加了几次前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题、淘宝的笔试题等,如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最常见的题型之一,这些题有一个特点,站在考官的角度去……【 查看全文】

    阅读:1639关键词: javascript    字符串   日期:2015-05-03
  • 常用的JS页面跳转代码调用大全

    所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转,如我们打开的是A页面,通过javsrcipt脚本就会跳转到B页面。目前很多垃圾站经常用js跳转将正常页面跳转到广告页面,当然也有一些网站为了追求吸引人的视觉效果,把一些栏目链接做成js链接,但这是一个比较严……【 查看全文】

    阅读:24316关键词: js页面    js跳转    js代码    js调用   日期:2014-09-17
  • JS基础知识:Javascript事件触发列表

    Javascript是一种由Netscape的LiveScript发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言。JavaScript使我们有能力创建动态页面,而事件是可以被JavaScript侦测到的行为,Javascript事件像HTML标签的属性一样使……【 查看全文】

    阅读:2112关键词: js知识    javascript    js事件列表    js事件   日期:2014-06-26
  • JavaScript事件处理程序的3种方式

    事件对象是用来记录一些事件发生时相关信息的对象,但事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁!事件流就是描述了页面中接受事件的顺序,在浏览器发展的初期,两大浏览器厂商IE和Netscape互掐……【 查看全文】

    阅读:8333关键词: javascript    js事件   日期:2014-07-19
↓ 点击查看更多 ↓

分类目录

  • SEO新闻
  • SEO思维
  • 移动端SEO
  • SEO问答
  • 医疗SEO
  • 淘宝SEO
  • 企业SEO
  • 站外SEO
  • 网站设计
  • 交互设计
  • 网站策划
  • 网页制作
  • 营销策划
  • 营销案例
  • 竞价技巧
  • 数据分析
  • 写作技巧
  • 微信微博
  • 自媒体
  • 新媒体
  • 内容营销
  • 网站运营
  • O2O模式
  • App运营
  • 产品运营
  • 网赚教程
  • 创新思维
  • 电子商务
  • 名人访谈
  • 创业故事

热点推荐

  • JS基础知识:Javascript事件触发列表 JS基础知识:Javascript事件触发列表JS基础知识:Javascript事件触发列表
  • 常用的JS页面跳转代码调用大全 常用的JS页面跳转代码调用大全常用的JS页面跳转代码调用大全
  • JavaScript事件处理程序的3种方式 JavaScript事件处理程序的3种方式JavaScript事件处理程序的3种方式
  • 最新挂木马的10大操作方法 最新挂木马的10大操作方法最新挂木马的10大操作方法

运营思维 更多>>

新接手一款App该怎么做App优化推广?新接手一款App该怎么做App优化推广?
立即访问
依靠电子商务改变茶叶营销模式会遇到什么难题?依靠电子商务改变茶叶营销模式会遇到什么难题?
立即访问
如何利用O2O模式经营一家理发连锁店如何利用O2O模式经营一家理发连锁店
立即访问
视频网站为什么很难赚钱?视频网站为什么很难赚钱?
立即访问
竞品分析报告的3大步骤竞品分析报告的3大步骤
立即访问
数据分析的流程及分析方法数据分析的流程及分析方法
立即访问
产品经理怎样用数据指标分析的思路优化产品?产品经理怎样用数据指标分析的思路优化产品?
立即访问
今日头条能否成为自媒体赚钱的新平台今日头条能否成为自媒体赚钱的新平台
立即访问
免费模式赚钱的核心竞争是什么免费模式赚钱的核心竞争是什么
立即访问
网赚新手快速寻找暴利项目产品的4大途径网赚新手快速寻找暴利项目产品的4大途径
立即访问

互联网 更多>>

  • 互联网思维的一些特征 互联网思维的一些特征 如今,互联网迅猛发展已经渗透人们生活各个方面,尤其是互联网正加快向传统行业渗透和融合,对传统行业提出严……
  • 盘点2010年代这10年的重大网络安全事件 盘点2010年代这10年的重大网络安全事件 二十一世纪的第2个十年即将过去,在过去十年里有很多的重大网络安全事件发生,我们见证了过去十年,大量的数据……
  • 基于高斯模糊原理的模糊图片的研究 基于高斯模糊原理的模糊图片的研究 高斯模糊(Gaussian Blur)的原理中,它是根据高斯曲线调节象素色值,它是有选择地模糊图像。说得直白一点,就是高……

网络营销 更多>>

  • 浅谈社交网络营销的七大营销策略 浅谈社交网络营销的七大营销策略
  • 从免费到付费的社交媒体形态发展分析 从免费到付费的社交媒体形态发展分析
  • 新浪微博已正式发布公告全面封杀微信 新浪微博已正式发布公告全面封杀微信
  • 2017年数字营销的十大发展趋势及发展状态 2017年数字营销的十大发展趋势及发展状态

网站制作 更多>>

  • 响应式网页设计的现状与难点 响应式网页设计的现状与难点
  • 动效设计的物理法则及应用 动效设计的物理法则及应用
  • 基于交互体验的扁平化设计要点 基于交互体验的扁平化设计要点

SEO优化 更多>>

企业网站SEO推广能给企业带来哪些好处? 百度搜索用户建议专区上线公告
  • 百度搜索将推出飓风算法2.0:严厉打 百度搜索将推出飓风算法2.0:严厉打
    为了营造良好的搜索内容生态,保护搜索用户的……
  • 网站收录量对于网站排名的影响作用 网站收录量对于网站排名的影响作用
    很多做SEO的朋友都会问,是不是网站收录越多网……
  • SEO是什么? SEO是什么?
    对于刚入SEO行业的新人来说,要想做好网站的s……
  • 史上最全的网站SEO策略方案 史上最全的网站SEO策略方案
    在搜索引擎优化中,一个网站的SEO策略能最终影……
  • 今年网站SEO优化要注意的6大策略 今年网站SEO优化要注意的6大策略
    通俗的来说,SEO技术就是一种达到SEO效果所采用……
  • 如何使用留言评论进行推广引流 如何使用留言评论进行推广引流
    随着新媒体的快速发展,留言评论变得随处可见……
  • 百度冰桶算法5.0:保障移动搜索用户 百度冰桶算法5.0:保障移动搜索用户
    为了提升移动搜索落地页体验,营造优质的移动……
  • 移动端手机站做站内优化的要点 移动端手机站做站内优化的要点
    随着移动流量的与日俱增,移动搜索引擎的功能……

本月热点文章

  • 1 详解JavaScript中的事件处理
  • 2 常用的JS页面跳转代码调用大全
  • 3 推荐一种测试JavaScript执行性能和性能比较的方法
  • 4 JavaScript开发者新手经常忽略或误用的基础知识点
  • 5 JavaScript是什么?JavaScript功能有哪些?
  • 6 JavaScript事件处理程序的3种方式
  • 7 常见JS挂马方法及如何防止网站被黑客挂马?
  • 8 JavaScript对象属性的基础教程指南
  • 9 Javascript教程:js异步模式编程的4种解决方法
  • 10 如何将模板理念应用到JS组件中

标签云

搜索引擎 seo SEO优化 index.html 电子商务 网站seo 百度 微信 网站优化 企业网站 自媒体 内容营销 产品经理 赚钱 竞价 互联网 网络营销 O2O app 关键词 营销案例 HTML5 O2O模式 用户体验 创业 Photoshop 数据分析 百度竞价 网站流量 营销 外链 文章 网站推广 网站排名 交互设计 SEO策略 社会化媒体 移动端 Google 网站内容 网站分析 网络推广 网站运营 淘宝 网站外链 网站设计 腾讯 医疗网站 网站策划 营销推广 dedecms 竞价推广 app推广 网页设计 友情链接 微信公众号 app应用 商业模式 移动互联网 推广方法 淘宝seo 大数据 网赚 微信营销 文案 博客 企业营销 JavaScript pr 百度搜索 门户网站 淘宝店铺 阿里巴巴 seo思维 优化技巧 网站降权 谷歌 seo技术 社交营销 seo技巧 织梦 SMO 响应式设计 手机网站 SEO新手 SEM Java 设计师 优化方法 转化率 SEO问题 百度推广 演讲 qq 文章写作 团队管理 移动搜索 软文 社交媒体 大型网站