`
快乐_虫
  • 浏览: 7064 次
  • 性别: 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章 浏览器...

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

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

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

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

    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