原文:javascript中对字符串的操作总结

没听过一句话吗?程序员的世界,不处理字符串就是处理数组。这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了几个面试题的内容,感觉前辈说的话非常的有道理,因此总结下,javascript中对字符串的操作。

String类型

首先字符串类型是基本类型,但是在这里我们所说的是字符串的对象包装类型。因为只有引用类型才会有属性和方法。实际上每读取一个基本类型的同时都会创建一个对应的基本包装类型,从而让我们能够调用一些方法来操作数据。
1.charAt() 和 charCodeAt()
两个方法都接受一个索引参数,charAt()返回对应索引的字符,charCodeAt()返回对应字符的字符编码。
2.concat()
用于将一个或多个字符串拼接起来,返回拼接得到的新字符串。
eg:

var str1 = '111';
var result = str1.concat('abcd','dsas');//结果111abcddsas

3.slice()、substr()、substring()
这三个方法都是对字符串的截取。且都接受一个或两个参数。他们的第一个参数都表示起始位置。
(1) slice()的第二个参数指定需要截取的位置的后面的字符索引。如果没有第二个参数则字符串长度作为结束位置。当传入负值时,会将负值与字符串的长度相加。

var str1 = "hello world"
alert(str1.slice(3));//不传第二个参数时默认为字符串长度结果:lo world
alert(str1.slice(3,7));//lo w
alert(str1.slice(-3));//传入负值与字符串长度相加结果:rld
alert(str1.slice(3,-7));//结果:l

(2) substring()的第二个参数指定需要截取的位置的后面的字符索引。如果没有第二个参数则字符串长度作为结束位置。当传入负值时,会将所有负值转换成0.

var str1 = "hello world"
alert(str1.substring(3));//不传第二个参数时默认为字符串长度结果:lo world
alert(str1.substring(3,7));//lo w
alert(str1.substring(-3));//第一个参数为负值转换为0第二个默认为字符串长度,结果:hello world
alert(str1.substring(3,-7))//结果:hel

(3)substr()的第二个参数时指定的截取长度,如果没有第二个参数则字符串长度作为结束位置。当传入负值时,会将第一个参数加上字符串的长度,而第二个参数转换为0.

var str1 = "hello world"
alert(str1.substr(3));//不传第二个参数时默认为字符串长度结果:lo world
alert(str1.substr(3,7))//结果:lo worl
alert(str1.substr(-3))//结果//rld
alert(str1.substr(3,-7))//结果:""

4.indexOf()、lastIndexOf()
这两个方法都接受两个参数,第一个参数时要确定位置的子字符串,第二个参数可选,是开始搜索的位置。方法,返回该子字符串的位置,如果未找到,则返回-1。indexOf()是从开头开始搜索,而lastIndexOf()则是从末尾向前搜索。

var str1 = "hello world";
alert(str1.indexOf("o"));//
alert(str1.lastIndexOf("0"));//
alert(str1.indexOf("a"))//-1
alert(str1.indexOf("o",6));//
alert(str1.lastIndexOf("o",6));//

5.trim()
trim()用于去除字符串两边的空格。
6.toLowerCase()、toUpperCase()
这两种方法用于转换字符串的大小写。直接看例子:

var str1 = "hello world"
var str2 = "HELLO WORLD"
alert(str1.toUpperCase());//HELLO WORLD
alert(str2.toLowerCase());//hello world

此外还有toLocaleLowerCase(),和toLocaleUpperCase()方法,与这两种方法类似。
7.match()
match()方法类似于正则中的exec(),接受一个参数,参数为正则表达式或者字符串。返回一个数组。数组内容与调用exec()方法一致。

  var text = "cat, bat, sat, fat";
var pattern = /.at/; var matches = text.match(pattern);
alert(matches.index); //
alert(matches[0]); //"cat"
alert(pattern.lastIndex); //

8.search()
search()方法与match()方法参数一致,返回第一个匹配项的索引,如果没有匹配到则返回-1,始终从开头向后查找。

var text = "cat, bat, sat, fat";
var pos = text.search(/at/);
alert(pos); //

9.replace()
replace()方法接受两个参数,第一个参数可以是一个正则对象或者一个字符串,第二个参数可以使一个字符串或者一个
函数。如果第一个参数为字符串,则返回由第二个参数替换调用字符串中子字符串的字符串。且只会替换第一个。若想全局替换,则需要使用正则,且要指定全局。

var text = "cat, bat, sat, fat";
var result = text.replace("at", "ond");
alert(result); //"cond, bat, sat, fat" result = text.replace(/at/g, "ond");
alert(result); //"cond, bond, sond, fond"

10.split()
这个方法会根据一个分隔符将一个字符串分割成多个子字符串并将结果放进一个数组。方法也可以接受第二个参数用来指定结果数组的大小。

var colorText = "red,blue,green,yellow";
var colors1 = colorText.split(","); //["red", "blue", "green", "yellow"]
var colors2 = colorText.split(",", 2); //["red", "blue"]
var colors3 = colorText.split(/[^\,]+/); //["", ",", ",", ",", ""]

此外还有formCharCode()方法用于将字符编码转换为字符串。

alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello"

以上为部分字符串方法。总结于《javascript高级程序设计》

javascript中对字符串的操作总结的更多相关文章

  1. javaScript中关于字符串的操作函数和方法

    1.字符串转换 toString():可以将任何类型的数据都转换为字符串 var num= 19; //19 var myStr = num.toString(); //"19" ...

  2. JavaScript中常见的数组操作函数及用法

    JavaScript中常见的数组操作函数及用法 昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下 ...

  3. javascript中的字符串对象和数组对象

    1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...

  4. javascript中的字符串对象

    1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...

  5. JavaScript如何实现字符串拼接操作

    实际应用中,目标字符串的生成可能需要多个数据的拼接. 由于应用频繁,几乎是所有编程语言都必须掌握的操作,当然每种语言具有各自特点. 本文将通过代码实例详细介绍一下JavaScript如何实现字符串拼接 ...

  6. php大力力 [024节]PHP中的字符串连接操作(2015-08-27)

    2015-08-27 php大力力024.PHP中的字符串连接操作 PHP中的字符串连接操作  阅读:次   时间:2012-03-25 PHP字符串的连接的简单实例 时间:2013-12-30 很多 ...

  7. JavaScript中对数组的操作

    原文:JavaScript中对数组的操作 一:数组的使用 1.定义:JavaScript中对数组的定义有两种形式.如: .var arr = [12,3,5,8]; .var arr = new Ar ...

  8. 如何在 JavaScript 中检查字符串是否包含子字符串?

    如何在 JavaScript 中检查字符串是否包含子字符串? // var test4 = _.includes(string, substring); 该方法需要此文件 <script src ...

  9. [转] JavaScript中的字符串操作

    一.概述    字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多....JavaScript的核心部分提供 ...

随机推荐

  1. 乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern)

    原文:乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern) 作者:weba ...

  2. MongoDB学习笔记-基础概念

    mongodb中基本的概念 文档.集合.数据库 与关系数据库的概念对比更容易理解

  3. 更新代码和工具,组织起来,提供所有博文(C++,2014.09)

    为了更容易地管理各种规范和工具所涉及的资源鲍文,现在把这些资源迁移 GitHub 在,趣者可前往下载. C++ 1.<通用高性能 Windows Socket 组件 HP-Socket v3.2 ...

  4. 【C语言探索之旅】 第二部分第六课:创建你自己的变量类型

    内容简介 1.课程大纲 2.第二部分第六课: 创建你自己的变量类型 3.第二部分第七课预告:   文件读写 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C ...

  5. Webuploader 大文件分片上传

    百度Webuploader 大文件分片上传(.net接收)   前阵子要做个大文件上传的功能,找来找去发现Webuploader还不错,关于她的介绍我就不再赘述. 动手前,在园子里找到了一篇不错的分片 ...

  6. C#设计及其UML(反向工程)

    OOP之C#设计及其UML(反向工程)   现在总结一下C#类关键字(virtual.abstract.override.new.sealed)的使用(以C#代码体现),并再次熟悉一下OOP思想,使用 ...

  7. 解决IIS7中出现An error occurred on the server when processing the URL错误提示的方法

    在IIS7上配置一个asp程序,出现了一个错如提示: An error occurred on the server when processing the URL. Please contact t ...

  8. Windows创建的基本含义和进程的进程的内核

    过程 1 这意味着过程: 1.1   一个是在操作系统的内核对象管理处理. 的统计信息的地方. 1.2   还有一个是地址空间.它包括全部可运行模块或DL L 模块的代码和数据.它还包括动态内存分配的 ...

  9. BestCoder Round #16

    BestCoder Round #16 题目链接 这场挫掉了,3挂2,都是非常sb的错误 23333 QAQ A:每一个数字.左边个数乘上右边个数,就是能够组成的区间个数,然后乘的过程注意取模不然会爆 ...

  10. 第十三章——表和索引分区(1)——使用Range Left进行表分区

    原文:第十三章--表和索引分区(1)--使用Range Left进行表分区 前言: 如果数据表的数据持续增长,并且表中的数据量已经达到数十亿甚至更多,数据的查询和操作将非常困难,面对非常庞大的表,几时 ...