JavaScript中的字符串
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中的字符串的更多相关文章
- javascript中对字符串的操作总结
原文:javascript中对字符串的操作总结 没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了 ...
- javascript中的字符串对象和数组对象
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...
- javascript中的字符串对象
1.javascript的对象的概念 在javascript中,除了null和undefined以处,其他的数据类型都被定义成了对象 也可以用创建对象的方法定义变量,string,math,array ...
- 如何在 JavaScript 中检查字符串是否包含子字符串?
如何在 JavaScript 中检查字符串是否包含子字符串? // var test4 = _.includes(string, substring); 该方法需要此文件 <script src ...
- [转] JavaScript中的字符串操作
一.概述 字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多....JavaScript的核心部分提供 ...
- javascript中的字符串编码、字符串方法详解
js中的字符串是一种类数组,采用UTF-16编码的Unicode字符集,意味字符串的每个字符可用下标方式获取,而每个字符串在内存中都是一个16位值组成的序列.js对字符串的各项操作均是在对16位值进行 ...
- 什么 是JavaScript中的字符串类型之间的转换问题详解? 部分4
字符串类型 单双引号都可以!建议使用单引号!(本人建议:个人觉得单个字符串更利于网页优化@特别地方特别处理!); 判断字符串的长度获取方式:变量名.length html中转义符: < < ...
- JavaScript中有对字符串编码的三个函数:escape,encodeURI,encodeURIComponent
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...
- javaScript中计算字符串MD5
进行HTTP网络通信的时候,调用API向服务器请求数据,有时为了防止API调用过程中被黑客恶意篡改,所请求参数需要进行MD5算法计算,得到摘要签名.服务端会根据请求参数,对签名进行验证,签名不合法的请 ...
随机推荐
- 在Windows环境下部署Axis2/C服务
Apache Axis2/C是C语言实现的网络服务引擎,基于Axis2架构,支持SOAP1.1和SOAP1.2协议,并且支持RESTful风格的Web service. 下面是本人在Windows 7 ...
- 浅谈Java泛型中的extends和super关键字(转)
通配符 在本文的前面的部分里已经说过了泛型类型的子类型的不相关性.但有些时候,我们希望能够像使用普通类型那样使用泛型类型: 向上造型一个泛型对象的引用 向下造型一个泛型对象的引用 向上造型一个泛型对象 ...
- Python GUI编程各种实现的对比
Python GUI编程各种实现的对比 从 Python 语言的诞生之日起,就有许多优秀的 GUI 工具集整合到 Python 当中,这些优秀的 GUI 工具集,使得 Python 也可以在图形界面编 ...
- Hadoop MapReduce链式实践--ChainReducer
版本号:CDH5.0.0,HDFS:2.3.0,Mapreduce:2.3.0,Yarn:2.3.0. 场景描写叙述:求一组数据中依照不同类别的最大值,比方,例如以下的数据: data1: A,10 ...
- 记录一次webbrowser无法加载 activex 遇到的问题
关联配置: win7 x64 Adobe Reader XI activex 安装目录X84 笔者项目运行Any CPU 无论如何也加载不出PDF 刚开始还以为自己封装的控件XWebBrowser的问 ...
- 关于MVC EntityType has no key defined的问题
关于MVC EntityType has no key defined的问题 在测试MVC时发现一个奇怪的问题,在Model中定义数据类时,如 public class UserInfo { publ ...
- BZOJ 2466: [中山市选2009]树( 高斯消元 )
高斯消元解异或方程组...然后对自由元进行暴搜.树形dp应该也是可以的... ------------------------------------------------------------- ...
- 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 ...
- 运用DIV拖拽实现resize和碰撞检测
运用DIV拖拽实现resize和碰撞检测 Div由拖拽改变大小 演示demo 当我们运用html元素"textarea"写一个文本输入框时,浏览器会自动生成以下样式 用鼠标拖动右下 ...
- 什么是core dump?(转)
什么是Core Dump? 今天调试一个程序, 用到了core dump, 于是写出来, 记于此.什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开 发和使用Uni ...