`
快乐_虫
  • 浏览: 7120 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

javaScript基础之——字符串

阅读更多
字符串类型是JavaScript的一种基本数据类型,是字符串的对象包装类型
String类(对象类型)提供(定义)大量操作原始字符串值的方法, 例如从字符串中提取字符或子串,或者检索字符或子串。注意,JavaScript的字符串是不可变(immutable)的,String类定义的方法都不能改变字符串的内容。像String.toUpperCase()这样的方法,返回的是全新的字符串,而不是修改原始字符串
 
 
length属性
String类型的每个实例都有一个length属性表示字符串中包含的字符数。值得注意的是,即使字符串中包含双字节字符,每个字符也仍然算一个字符。
String.length是一个只读整数,对于任何一个字符串,它最后一个字符的下标都是s.1ength-1。用for/in循环不能枚举出字符串的length属性,用delete运算符也不能删除它。
 
 
常用方法
  
字符方法
string.charAt() 
string.charCodeAt() 
//返回字符串中指定位置的字符或者字符编码
 
string.charAt( n ) --- 返回字符串中的第n个字符
参数:n是应该返回的字符在string中的下标
功能方法charAt()将返回字符串string中的第n个字符。字符串中第一个字符的下标值是0。如果参数n不在0和string.length-1之间,该方法将返回一个空字符串。这个方法返回的字符长度只能是0或1。
返回值:字符串string的第n个字符。
Bug:使用方括号表示法访问个别字符的语法得到了IE8及Firefox、safari、chrome和opera所有版本的支持。如果是在IE7及更早版本中使用这种语法,会返回undefined值。
 
string.charCodeAt( n )--- 返回字符串中的第n个字符的字符编码
参数:n是应该返回的字符编码在string中的下标
功能方法charCodeAt()将返回字符串string中的第n个字符的Unicode编码。它与charAt()方法执行的操作相似,只不过charAt()返回的是位于指定位置的字符本身,而charCodeAt()返回的是字符的编码。如果参数n不在0和string.length-1之间,该方法将返回NaN。
返回值:字符串string的第n个字符的Unicode编码。这个返回值是0~65535之间的16位整数。
Bug:JavaScript 1.2 对16位Unicode字符和字符串没有提供完全的支持。
 
string.fromCharCode( c1,c2,… )--- 从字符编码创建一个字符串
参数:零个或多个整数,声明了要创建的字符串中的字符的Unicode编码。
功能:这个静态方法提供了一种创建字符串的方式,即字符串中的每个字符都由单独的数字Unicode编码指定。注意,作为一种静态方法,fromCharCode()是构造函数String()的属性,而不是字符串或String对象的方法。
返回值:含有指定编码的字符的新字符串。
Bug:JavaScript 1.2 对16位Unicode字符和字符串没有提供完全的支持。
示例:
var s = String.fromCharCode(104,101,108,108,111);             //  "hello"
 
位置方法
string.indexOf() 
string.lastIndexOf() 
//从字符串中查找子字符串的方法
 
string.indexOf( substring,start ) --- 搜索给定的子串,返回子串位置
参数substring:要在字符串string中检索的子串start:可选的整数参数,声明了在字符串string中开始检索的位置。他的合法取值是0~length-1,如果省略了这个参数,将从字符串的第一个字符开始检索。
功能
将从头到尾的检索字符串string,看它是否含有子串substring。
开始检索的位置在字符串string中的start处或string的开头。
如果找到了一个substring,那么返回substring在第一个字符在string中的位置。如果没找到,返回  -1。
返回值:在string中的start位置之后存在substring返回出现的第一个substring的位置如没找到返回 -1
Bug:在JavaScript 1.0 和 1.1中,如果start的值大于字符串string的长度,将返回一个空字符串,而不是返回-1。
 
string.lastIndexOf( substring,start ) --- 从后向前检索一个字符串
参数substring:要在字符串string中检索的子串start:可选的整数参数,声明了在字符串string中开始检索的位置。他的合法取值是0~length-1,如果省略了这个参数,将从字符串的最后一个字符开始检索。
功能
将从的检索字符串string,看它是否含有子串substring。
开始检索的位置在字符串string中的start处或string的结尾。
如果找到了一个substring,那么返回substring的第一个字符在string中的位置。由于是从尾到头的检索一个字符串,所以找到的第一个substring其实是string中出现在位置start之前的最后一个子串。如果没找到,返回  -1。
虽然string.lastIndexOf()是从尾到头的检索字符串string,但是它返回的字符位置仍然是从头开始计算的。
返回值:如果在string中的start位置之前存在substring子串,返回最后一个substring的位置。如果没有找到,返回 -1 。
 
大小写转换方法
//toLowerCase()和toUpperCase()方法时两个经典的方法,借鉴自java.lang.String中的同名方法。
//toLocaleLowerCase()和toLocaleUpperCase()方法针对特定地区实现方法,少数语言会得到与上面两个方法不同的结果。
 
string.toLowerCase() ---将字符串转换成小写
string.toUpperCase() ---将字符串转换成大写
string.toLocaleLowerCase() ---将字符串转换成小写,按地区实现
string.toLocaleUpperCase() ---将字符串转换成大写,按地区实现
 
返回值:这4个方法的返回值都是string的一个副本。
 
字符串操作方法
//截取子串&拼接字符串
 
string.substr( start,length ) --- 抽取一个子串
参数
start:要抽取的子串的起始下标,如果是负数,那么参数声明从字符串的尾部开始算起,也就是说, -1 指字符串中的最后一个字符,-2指倒数第二个字符,以此类推
length:可选参数,子串中的字符数。如果省略了这个参数,那么返回从start到结尾的子串。
功能将在string中抽取并返回一个子串。
返回值:一个字符串的副本,包括从start处(包含start所指字符)开始的length个字符。如果没有指定length,返回从start到末尾的字符。
BugIE8及以下,start不能为负值,负的start值指定的不是从字符尾部开始算起的字符位置,而是第0个字符的位置
 
string.substring( start,end) --- 返回字符串的一个子串
参数
start:要抽取的子串的起始下标。end:可选整数参数,要抽取子串在字符串string中的结束位置不包括end位置所在的字符),如果省略,返回直到字符串string结尾位置的子串
功能
返回字符串string的子串,有start到end之间的字符构成。包括start的字符,不包括end的字符。
如果参数start与end相等,那么返回一个空字符。
如果start比end大,那么该方法会先交换两个参数,再抽取子串。
扩展:返回的子串包括start的字符,不包括end的字符。虽然这样看来有违直觉,但这种系统有一个值得注意的特性:返回的子串长度总等于end-start的值
返回值:一个字符串的副本,包括从start处(包含start所指字符)到end处(不包括)的字符串。如果没有指定length,返回从start到末尾的字符。
Bug:JavaScript 1.2 中,如果start比end大,不能正确的交换两个参数的位置,而是返回空字符串。
 
string.slice( start,end) --- 抽取一个子串
参数
start:要抽取的子串的起始下标,如果是负数,那么参数声明从字符串的尾部开始算起,也就是说, -1 指字符串中的最后一个字符,-2指倒数第二个字符,以此类推
end要抽取的片段的结尾的下标。如果没有指定end参数,那么要抽取的子串包括start到元字符串结尾的字符串。如果该参数是负数,那么它声明了从字符串的尾部开始算起的位置。
功能:将返回一个含有字符串string的片段的字符串或返回它的一个子串。
返回值:一个新字符串,包括字符串string从start开始(包括)到end为止(不包括)的所有字符。
Bug:IE4中,参数start的值不能为负,负的start值指定的不是从字符串尾部开始算起的字符位置,而是指定第0个字符的位置。
 
--------------------------------------以上3个截取字符串方法的总结----------------------------------
1:3个方法都返回字符串的指定部分。
2:3个方法的第一个参数都是start---表示指定字符串的开始位置。
3:3个方法的第二个参数省略的话,都返回start到结尾处的字符子串。
4:slice和substring的第二个参数代表子字符串结束的位置,而substr的第二个参数指返回的字符个数。
5:substring的start大于end的话,会交换参数再截取子串。
6:在参数为负值的情况下,
slice方法会将传入的负值与字符串的长度相加(从结尾计算位置),
substr将负的第一个参数加上字符串的长度(-同slice),而将负的第二个参数转换成0。
substring会把所有负数转换为0(此时,如果0小于第一个参数的话,还会交换2个参数的位置)
 
string.concat( value,…) --- 连接字符串
参数value:要连接到string上的一个或多个值。
功能:将把它的所有参数都转换成字符串(如果必要),然后按顺序连接到字符串string的尾部,返回连接后的字符串。
返回值:把每个参数都连接到字符串string上得到的新字符串。
扩展:使用“+”运算符来进行字符串的连接运算通常更简便一些。
 
模式匹配方法
//相关RegExp知识,请自行参考其他资料学习
 
string.match( regexp ) --- 找到一个或多个正则表达式的匹配
参数
regexp:生命了要匹配的模式的RegExp对象。如果该参数不是RegExp对象,则首先将把它传递给RegExp()构造函数,把它转化成RegExp对象。
功能
将检索字符串string,以找到一个或多个与regexp匹配的文本。这个方法的行为很大程度上依赖于regexp是否具有全局性质g。
如果regexp具有标志g,那么match()将执行全局检索,找到string中的所有匹配子串。如果没有找到任何匹配的子串。它将返回null。如果找到了一个或多个匹配子串,它将返回一个数组。不过,全局匹配返回的数组的内容与前者大不相同,它的数组元素存放的是string中的所有匹配子串,而且它也没有index属性和input属性。注意,在全局匹配的模式下,match()既不提供与子表达式匹配的文本的信息,也不声明每个匹配子串的位置。如果你需要这些全局检索的信息,可以使用RegExp.exec()。
返回值存放匹配结果的数组。该数组的内容依赖于regexp是否具有全局性质g。
 
string.search( regexp ) --- 检索与正则表达式相匹配的子串
参数regexp:要在字符串string中检索的RegExp对象,该对象具有指定的模式。如果该参数不是RegExp对象,则首先将它传递给RegExp()构造函数,把它转换成 RegExp对象。
返回值string中第一个与regexp相匹配的子串的起始位置。如果没有找到任何匹配的子 串,则返回-1。
功能方法search()将在字符串string中检索与regexp相匹配的子串,并且返回第一个匹配子串的第一个字符的位置。如果没有找到任何匹配的子串,则返回-1。search()并不执行全局匹配,它将忽略标志g。它也忽略regexp的lastIndex属性,并且总是从字符串的开始进行检索,这意味着它总是返回string的第一个匹配的位置。
 
string.replace( regexp,replacement) --- 替换一个与正则表达式匹配的子串
参数
regexp:声明了要替换的模式的RegExp对象。如果该参数是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换成RegExp对象。
replacement:一个字符串声明的是替换文本或生成替换文本的函数。
返回值一个新字符串,是用replacemenc替换了与regexp的第一次匹配或所有匹配之后得到的。
功能
字符串string的方法replace()执行的是查找并替换的操作。它将在string中查找与regexp相匹配的子串,然后用replacement替换这些子串。如果regexp具有全局性质g,那么replace()将替换所有的匹配子串。否则,它只替换第一个匹配子串。
replacement可能是字符串或函数。如果它是一个字符串,那么每个匹配都将由字符 串替换。
ECMAScript v3规定,replace()方法的参数replacement可以是函数而不是字符串,JavaScipt 1.2和JScript 5.5实现了这一特性。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字 符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有0个或多个这样的参数。接下来参数是一个整数,声明了匹配在string中出现的位置。最后一个参数是string自身。
 
string.split( delimiter,limit) --- 将字符串分割成字符串数组
参数
delimiter:字符串或正则表达式,从该参数指定的地方分割string
limit可选的整数,指定了返回的数组的最大长度如果设置了该参数,返回的子串不会多于这个参数指定的数字。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
功能
方法split()将创建并返回一个字符串数组,该数组中的元素是指定的字符串string 的子串,最多具有limit个。这些子串是通过从头到尾检索字符串中与delimiter 匹配的文本,在匹配文本之前和之后分割string得到的。返回的子串中不包括定界符 文本(下面提到的情况除外)。如果定界符从字符串开头开始匹配,返回的数组的第一个元素是空串,即出现在定界符之前的文本。同样,如果定界符与字符串的结尾匹 配,返回的数组的最后一个元素也是空串(假定与limit没有冲突)。
如果没有指定delimiter,那么它根本就不对string执行分割,返回的数组中只有一个元素,而不分割字符串元素。如果delimiter是一个空串或与空串匹配的正则表达式,那么string中的每个字符之间都会被分割,返回的数组的长度与字符串长度相 等(假定limic不小于该长度)。(注意,这是一种特殊情况,因为没有匹配第一个字符之前和最后一个字符之后的空串。)
前面说过,该方法返回的数组中的子串不包括用于分割字符串的定界符文本。但如果delimiter是包括子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹 配的子串(但不包括与整个正则表达式匹配的文本)。
返回值一个字符串数组,是通过在delimiter指定的边界处将字符串string分割成子串创建的。返回的数组中的子串不包括delimiter自身。
Bug:ECMAScriptv3标准化了该参数,JavaScript 1.2和JScript 3.0实现了它。JavaScript 1.1没有实现它。在JavaScript的Netscape实现中,如果明确地把语言版本设置为1.2,split()方法具有特殊的行为,即如果delimiter 是一个空格,该方法将在空格处分割字符串,忽略字符串开头和结尾处的空白。
 
字符串比较方法
 
string.localeCompare( target) --- 用本地特定的顺序来比较两个字符串
参数target:要以本地特定的顺序与string进行比较的字符串。
功能
<>运算符应用到字符串时,它们只用字符的Unicode编码比较字符串,而不考虑当地的排序规约。以这种方法生成的顺序不一定是正确的。例如,西班牙语中,其中字母“ch”通常作为出现在字母“c”和“d”之间的字符来排序。
localeCompare()方法提供的比较字符串的方法,考虑了默认的本地排序规约。 ECMAScript标准没有规定如何进行本地特定的比较操作,它只规定该函数采用底层 操作系统提供的排序规约。 
返回值说明比较结果的数字。如果string小于target,则localeCompare()返回小于0的数。如果string大干target,该方法返回大于0的数。如果两个字符串相等,或根据本地排序规约没有区别,该方法返回0。
 
ECMAScript 5 增加的字符串方法
string.trim() --- 删除前置及后缀的所有空格,然后返回结果
功能:删除字符串的前后空格,并返回结果,原始字符串不变。
浏览器支持:IE9+,Firefox3.5+,Safari5+,opera10.5+,Chrome。
 
 
----除以上方法以外,还有一些html方法,不建议试用,这里也就不再罗列html方法的功能与用法-----
分享到:
评论

相关推荐

    JavaScript 字符串乘法

    原文地址:http://www.davidflanagan.com/2009/08/string-multipli.html原作者:David Flanagan在Ruby中,... 我刚刚发现在JavaScript中有个聪明的技巧来实现字符串的乘法: 代码如下: String.prototype.times = func

    javascript代码-使用代码解决Js 判断字符串是否为空的源代码

    ——学习参考资料:仅用于个人学习使用! javascript代码-使用代码解决Js 判断字符串是否为空的源代码

    JavaScript基础教程——入门必看篇

    JavaScript他是一种描述性语言,其实他并不难学,只要用心学,一定会学好,我相信大家在看这篇文章的时候,一定也学过HTML吧,使用JavaScript就是为了能和网页有更好的交互,下面切入主题。  一. JavaScript 1.什么...

    温故知新——JavaScript中的字符串连接问题最全总结(推荐)

    主要介绍了JS中的字符串连接问题,ECMAScript 中最常见的一个问题是字符串连接的性能。在调用 join() 方法时才会发生连接操作,具体操作步骤大家可查看下文的详细讲解,感兴趣的小伙伴们可以参考一下。

    精通Javascript系列之数据类型 字符串

    js一共有9种数据类型,分别是:未定义(undefined)、空(null)、布尔型(boolean)、字符串(string)、数值(number)、对象... ——————————– 单引号和双引号可以随便使用,但是,如果字符串里包含双

    JS实现统计字符串中字符出现个数及最大个数功能示例

    本文实例讲述了JS实现统计字符串中字符出现个数及最大个数功能。分享给大家供大家参考,具体如下: js判断字符串中某字符出现的个数 今天碰到的一道题,比较简单,为了防止眼高手低还是写一下吧 &lt;html&gt; &lt;...

    javascript代码-使用代码解决fnStringTrim(str) - 去除js字符串前后的空格.js的源代码

    ——学习参考资料:仅用于个人学习使用! javascript代码-使用代码解决fnStringTrim(str) - 去除js字符串前后的空格.js的源代码

    JavaScript基础知识之数据类型

    数据类型 JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一组无序的名... ● “string”——如果这个值是字符串

    JavaScript入门经典(第3版) 附书源代码.rar

    判断、循环和函数3.1 选择语句——if语句和switch语句3.2 循环语句——for语句和while语句3.3 函数3.4 创建一个“在线小测试”程序7中的基本函数3.5 小结3.6 习题第4章 JavaScript——基于对象的语言第5章 浏览器...

    JavaScript入门经典(第1版)书源代码

    3.5 小结 3.6 习题第4章 JavaScript——基于对象的语言第5章 浏览器程序设计第6章 HTML表单——与用户进行交互第7章 窗体和框架第8章 字符串操作第9章 日期、时间和计时器第10章 常见错误、调试和错误处理第11章 ...

    Jimp —— 一个使用 JavaScript 编写的图像处理库

    Jimp图像处理库编译好的js文件,包括jimp.js、jimp.min.js文件,可用于前端和node后端。另附前端demo运行。

    javascript学习笔记.docx

    6) typeof函数的返回值:数字——number,字符串——string,布尔值——Boolean,对象、数组、null——object,函数名——function或undefined(未定义时)。主要用来区别区别对象和原始类型。要区分对象的具体类型...

    走进javascript——不起眼的基础,值和分号

    值 有时我很想知道javascript解析引擎是如何区分一个变量的值,比如下面这段代码。 var x = 'javascript';...因此如何区分变量和字符串就显得格外重要,编程语言常常将字符串用引号括起来,从而达到区分变

    JavaScript 判断日期格式是否正确的实现代码

    http://www.cnblogs.com/GuominQiu 代码如下: //————————————————————————— //判断日期格式是否正确 //返回值是错误信息, 无错误信息即表示合法日期字符串 function isDateString(strDate...

    javascript从入门到跑路—–小文的js学习笔记(3)———javascript中的数据类型

    javascript从入门到跑路—–小文的js学习笔记(1)———script、alert、document。write() 和 console.log 标签 … … javascript从入门到跑路—–小文的js学习笔记目录 ** 在学习js的数据类型前,首先要学习一个...

    正则表达式匹配工具——主流的开发语言(C#、Java、C++、VB、Ruby以及Python等)

    这是一款正则匹配工具,正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个...

    JavaScript 基础篇(一)

    JavaScript 基础篇(一) 基础篇 Javascript:一、数据类型和值 javascript:允许使用3种基本类型数据——–数字、字符串、布尔值,此外还支持两种小数据类型null(空)和undefine(未定义). javascript:还支持符合...

    JavaScript详解(第2版)

     2.3.1 字符串及字符串串联   2.3.2 write()及writeln()方法   2.4 关于调试   2.5 调试工具   2.5.1 Firefox   2.5.2 在Internet Explorer 8中调试   2.5.3 [removed]URL 协议   2.6 ...

    PHP 定界符 使用技巧

    如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会...

Global site tag (gtag.js) - Google Analytics