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. <正向/反向>最大匹配算法(Java)

    算法描述(正向): 给定最大词长n,待分词文本str,指针f=0,词典dic文档 1 取子串sub=str(f,f+n) 2 如果(遍历dic,有匹配sub) f++; 3 否则 n--; 4 注意: ...

  2. java计算器

       由于自己的实验报告 需要用Java来写一个实验报告.自己本没有怎么学过Java,但是学的话也就认真的学一下,毕竟技术这条路线是技多不压身.于是在网站上找来了一些资料,关于Java到底是干什么的, ...

  3. 类比的方法学习Performance_schema

    引用自:http://www.javacoder.cn/?p=332 MySQL在5.6版本中包含了一个强大的特性——performance-schema,合理的使用这个数据库中的表,能为我们解决一些 ...

  4. Linux cd命令

    1: cd  不加任何参数,它会自动跳到用户的家目录中去! 2: ~ 表示用户的家目录 3: cd ~userNmae/     这样可以进入指定用户的家目录中去! 4: cd - 跳到上一次所在的目 ...

  5. InitParam与ContextParm的异同

    web.xml里面可以定义两种参数:(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下: xml 代码 <context-param> ...

  6. 黑马程序员_<<StringBuffer,包装类>>

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1. StringBuffer 1.概述 S ...

  7. 狼追兔子问题C模拟解

    说,一只兔子在O点处,它的洞穴在正北20m的B点处,一只狼位于兔子正东33米的A点处,模拟如下追逐问题:狼以一倍于兔子的速度紧盯兔子追击,问兔子到达洞口前是否会被狼逮住? 网上很多人说能被追上,包括类 ...

  8. vc++实现avi文件的操作

    为了对avi进行读写,微软提供了一套API,总共50个函数,他们的用途主要有两类,一个是avi文件的操作,一类是数据流streams的操作. 1.打开和关闭文件 AVIFileOpen ,AVIFil ...

  9. EasyUI的使用步骤

    (1) 将easyui-1.4.3中jquery.min.js\jquery.easyui.min.js复制到工程的script下 (2) 将themes复制到工程中 (3) 在页面中引入2个JS 2 ...

  10. BZOJ 1050 旅行comf

    题目如下: 题目描述 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大边 ...