JavaScript字符串是JavaScript最重要的部分,可能比任何其他的数据类型都更多的用到。

所有的JavaScript对象共享的方法之一就是toString()。

字符串对象叫做String,并且,与其他的JavaScript对象一样,它拥有预先构建在对象类型上的一组属性。

可以使用new运算符来实例化一个String对象,就像声明一个数组或者对象一样。

var str=new String(“Hello,world”);

实例化之后,可以通过str访问所有String】类型的属性,例如:

str=str.toUpperCase();//现在新的字符串是"HELLO,WORLD”

如果没有使用new来访问String,将会创建一个字符串字面量,而不是一个String对象,与直接使用引号达到的效果一样。例如:

var str=String("new string")和var str="new string",两句语句的效果是一样的

尽管String对象和字符串字面量不同,但是我们依然可以在一个字符串字面量上访问String对象的方法。

具体过程是:当一个字符串字面量调用String对象的方法的时候,JavaScript引擎会根据这个字面量创建一个String对象,这个对象包含了字符串字面量。然后创建的新对象调用方法,结束之后,销毁之前创建的String对象。

String类型

string类型是字符串的对象包装类型,提供了很多方法,用来辅助完成ECMAScript中字符串的解析和操作。

1、字符方法

两个用于访问字符串中特定字符的方法是:chartAt()和charCodeAt()

两个方法都接受一个参数:基于0的字符位置。其中charAt()以单字符字符串的形式返回指定位置的那个字符,而charCodeAt()则返回字符编码

这个例子中,使用charAt()得到的是",",而使用charCodeAt()得到的是"44",也就是逗号对应的字符编码。

ECMAScript还另外定义了一个访问个别字符的方法,可以使用方括号加数字索引来访问特定的字符,就像访问数组中的元素一样。如果在IE7及更早版本中使用,会返回undefined。在IE7中

在Chrome中

2、字符串操作方法

这一类有较多个方法。

第一个是concat(),可以将一个或者多个字符串拼接起来,返回拼接得到的新字符串。可以接受任意多个参数,将参数拼接得到新的字符串。

虽然concat()是专门拼接字符串的方法,但是实践中更多使用的还是加法操作符,而且加法操作符在大多数情况下逗比concat()要方便得多。

还有三个基于子字符串创建新字符串的方法:slice(),substr(),substring()。这三个方法都返回被操作字符串的一个子字符串。都可以接受一个或两个参数。

第一个参数指定子字符串开始的位置,这一点对于这三个方法来说都是一样的。

第二个参数表示子字符串到何处结束。如果没有指定,三者都将原字符串的长度作为结束的位置;如果指定了第二个参数,那么三者都有差别。

slice和substring的第二个参数指定的是字符串最后一个字符后面的位置。

substr的第二个参数指定的是返回的字符个数。

值得注意的是:

slice传入两个参数时,第一个参数必须小于第二个参数;而substring传入两个参数时,将较小的数作为开始位置,较大的数作为结束位置。

当传入的参数是负值的时候,这三个方法的行为就不太一样了。

slice会将负值与字符串的长度相加;substr将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0;substring会将所有的负值的参数转换成0。

3、字符串位置方法

有两个可以从字符串红查找子字符串的方法:indexOf(),lastIndexOf()。这两个方法都是从一个字符串中搜索指定的子字符串,然后返回子字符串的位置。如果没有找到该子字符串,则返回-1。

同时,这两个方法都可以接受第二个参数,表示从字符串的哪个位置开始搜索。而indexOf从指定的位置往后搜索,lastIndexOf从指定的位置往前搜索。

4、字符串大小写转换方法

JavaScript提供了四种与大小转换有关的方法。经典的两个是:toUpperCase(),toLowerCase()。前者将字符串全部字母转换成大写,后者将字符串全部字母转换成小写。

toLocaleUpperCase(),toLocaleLowerCase(),针对特定地区使用。

5、字符串的模式匹配方法

这类方法和正则表达式有一定的联系,现在自己还没有接触过。踏踏实实等学会了再来补充。

6、一个很独特的方法:split

这个方法将字符串分割成字符串数组,并返回这个数组。可以接受最多两个参数。

没有参数的时候,该方法会将原字符串当做数组的元素返回。

只有一个参数的时候,该方法会将参数指定的字符的位置作为界限来分解原字符串。如果传入的是空字符串,则回将每个字母都当做数组元素返回。

第二个参数用来限定返回的数组的长度。接着上例

上面这些是String常用的一些方法,光知道有这些还是不行,要实践一下才能更好的熟悉。所谓:熟能生巧,多看多练才是正解。

JavaScript中的字符串的更多相关文章

  1. javascript中对字符串的操作总结

    原文:javascript中对字符串的操作总结 没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了 ...

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

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

  3. javascript中的字符串对象

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

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

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

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

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

  6. javascript中的字符串编码、字符串方法详解

    js中的字符串是一种类数组,采用UTF-16编码的Unicode字符集,意味字符串的每个字符可用下标方式获取,而每个字符串在内存中都是一个16位值组成的序列.js对字符串的各项操作均是在对16位值进行 ...

  7. 什么 是JavaScript中的字符串类型之间的转换问题详解? 部分4

    字符串类型 单双引号都可以!建议使用单引号!(本人建议:个人觉得单个字符串更利于网页优化@特别地方特别处理!); 判断字符串的长度获取方式:变量名.length html中转义符: < < ...

  8. JavaScript中有对字符串编码的三个函数:escape,encodeURI,encodeURIComponent

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  9. javaScript中计算字符串MD5

    进行HTTP网络通信的时候,调用API向服务器请求数据,有时为了防止API调用过程中被黑客恶意篡改,所请求参数需要进行MD5算法计算,得到摘要签名.服务端会根据请求参数,对签名进行验证,签名不合法的请 ...

随机推荐

  1. 在Windows环境下部署Axis2/C服务

    Apache Axis2/C是C语言实现的网络服务引擎,基于Axis2架构,支持SOAP1.1和SOAP1.2协议,并且支持RESTful风格的Web service. 下面是本人在Windows 7 ...

  2. 浅谈Java泛型中的extends和super关键字(转)

    通配符 在本文的前面的部分里已经说过了泛型类型的子类型的不相关性.但有些时候,我们希望能够像使用普通类型那样使用泛型类型: 向上造型一个泛型对象的引用 向下造型一个泛型对象的引用 向上造型一个泛型对象 ...

  3. Python GUI编程各种实现的对比

    Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编 ...

  4. Hadoop MapReduce链式实践--ChainReducer

    版本号:CDH5.0.0,HDFS:2.3.0,Mapreduce:2.3.0,Yarn:2.3.0. 场景描写叙述:求一组数据中依照不同类别的最大值,比方,例如以下的数据: data1: A,10 ...

  5. 记录一次webbrowser无法加载 activex 遇到的问题

    关联配置: win7 x64 Adobe Reader XI activex 安装目录X84 笔者项目运行Any CPU 无论如何也加载不出PDF 刚开始还以为自己封装的控件XWebBrowser的问 ...

  6. 关于MVC EntityType has no key defined的问题

    关于MVC EntityType has no key defined的问题 在测试MVC时发现一个奇怪的问题,在Model中定义数据类时,如 public class UserInfo { publ ...

  7. BZOJ 2466: [中山市选2009]树( 高斯消元 )

    高斯消元解异或方程组...然后对自由元进行暴搜.树形dp应该也是可以的... ------------------------------------------------------------- ...

  8. this function has none of deterministic, no sql,or reads sql data in its declaration and binary logging is enabled

      原址:http://blog.chinaunix.net/uid-20639775-id-3031821.html   This function has none of DETERMINISTI ...

  9. 运用DIV拖拽实现resize和碰撞检测

    运用DIV拖拽实现resize和碰撞检测 Div由拖拽改变大小 演示demo 当我们运用html元素"textarea"写一个文本输入框时,浏览器会自动生成以下样式 用鼠标拖动右下 ...

  10. 什么是core dump?(转)

    什么是Core Dump? 今天调试一个程序, 用到了core dump, 于是写出来, 记于此.什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开 发和使用Uni ...