原文: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. Mono for Andriod学习与实践(1)— 初体验

    对于Andriod的开发者来说,相信Java语言是第一选择,可是对于.Net开发者来说,要想利用C#在Andriod平台上开发,Mono提供了相应的开发平台来实现,Mono for Andriod就是 ...

  2. .Net下一个Winform方案可以让MessageBox.Show它显示在父窗口的中间

    下面的文字,缺省值是在屏幕中间显示. DialogResult dr = MessageBox.Show("是否要删除此数据?", "删除确认", Messag ...

  3. SorlNet

    Solr学习 上一篇已经讲到了Solr 查询的相关的参数.这里在讲讲C#是如何通过客户端请求和接受solr服务器的数据, 这里推荐使用SolrNet,主要是:SolrNet使用非常方便,而且用户众多, ...

  4. 编译命令行终端 swift

    So, this is where swift lives, after you've installed XCode 6 Beta: /Applications/Xcode6-Beta.app/Co ...

  5. oracle在imp订单具体解释

    oracle在imp订单具体解释 Oracle导入实用程序(Import utility)同意从数据库中提取数据,和写入数据到一个操作系统文件项目.imp所用的基本格式:imp[username[/p ...

  6. Hibernate 映射字段问题[ImprovedNamingStrategy]

    Hibernate 使用JPA 对于映射有3种规则能够配置:DefaultNamingStrategy,ImprovedNamingStrategy,EJB3NamingStrategy 这里仅仅说I ...

  7. 初学者cocos2dx 写2048 为了和大家一起分享

    第一个是在头文件 部分的代码是学习不变  大多数写自己. class HelloWorld : public cocos2d::CCLayer { public: virtual bool init( ...

  8. android user如何打开一个版本号root才干

    首先,你要确认你要打开adbd 的root 才干,或者让app 它有可能获得root 才干.   (1). adbd 的root 才干 我们通常debug user 当问题的版本号, 或行为user ...

  9. default argument given of parameter 的问题

    今天写了一个类,当中的一个方法用到了默认參数,结果报了  "default argument given of parameter 的问题 " 错误. 类头文件的声明例如以下: v ...

  10. ZendFramework2学习笔记 json和ajax

    单程: View服务寄存器ViewJsonStrategy之后,有可能直接在控制器action是使用JsonViewModel输出json的数据. 注冊ViewJsonStrategy: //modu ...