`
快乐_虫
  • 浏览: 7527 次
  • 性别: 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方法的功能与用法-----
分享到:
评论

相关推荐

    JS——字符串

    以上是JS中关于字符串的一些核心知识点,理解和掌握这些内容将对编写高效且功能丰富的JavaScript代码大有帮助。实际应用中,开发者还应关注性能优化、Unicode处理、字符串的比较操作以及在不同浏览器环境下的兼容性...

    JavaScript基础篇——浅谈cookie

    ### JavaScript基础篇——浅谈cookie #### 一、引言 在Web开发中,如何保持用户的登录状态或记住用户的一些个性化设置是一个常见的需求。对于这种轻量级的数据存储需求,`cookie`是一种非常实用的技术。它能够帮助...

    js字符串截取

    ### JavaScript字符串操作详解 在JavaScript开发中,对字符串进行处理是一项非常常见的任务。本文将详细介绍JavaScript中关于字符串处理的一些常用方法,特别是与“截取”相关的功能,这将帮助开发者更好地理解和...

    JavaScript网页开发——体验式学习教程

    在JavaScript语法部分,学习者将接触到变量、数据类型(如字符串、数字、布尔值、对象等)、运算符、控制流(如条件语句、循环)、函数等基本概念。此外,还会讲解到作用域、闭包等进阶主题,这些都是编写高效、可...

    JavaScript网页开发——体验式学习教程.pdf

    教程首先会介绍JavaScript的基础知识,包括变量、数据类型(如字符串、数字、布尔值以及更复杂的数据结构如数组和对象)、运算符(算术、比较、逻辑等)以及流程控制(条件语句if...else、switch、循环for、while等...

    字符串排序方法

    #### 描述:字符串排序方法——在JavaScript中的字符串排序技巧。 #### 标签:JS #### 部分内容解析: 虽然提供的代码示例是用Java编写的,但我们可以从中提取出排序的核心思想,并将其应用到JavaScript中。 ### ...

    javaScript全面分析——中文版

    ECMAScript 6(ES6)是JavaScript的一个重要版本,引入了许多新的语法特性,如let和const、解构赋值、模板字符串、箭头函数、类和模块等。理解并熟练运用这些新特性可以提升代码的简洁性和效率。 七、JavaScript...

    JavaScript程序设计ES之模板字符串共2页.pdf

    本篇文档“JavaScript程序设计ES之模板字符串共2页.pdf”将聚焦于ES中的一个重要特性——模板字符串,这是ES6引入的新特性,极大地改善了我们处理字符串的方式。 模板字符串,又称模板字面量,用反引号(`)包裹,...

    JavaScript实战手册——第七版代码

    《JavaScript实战手册——第七版代码》是一本专为JavaScript开发者准备的实践指南,它涵盖了从基础到高级的各种JavaScript编程技术。这本书的代码示例旨在帮助读者深入理解语言机制,并提升在实际项目中的应用能力。...

    JavaScript字符串查找1

    本文主要关注的是最基础的字符串查找算法——朴素搜索法。这是一种简单直观的方法,但效率较低,适用于小规模的数据处理。 **一、字符串查找的基本概念** 字符串查找,或者称为字符串搜索或字符串匹配,其目标是在...

    实例013——实现查找、替换字符串.zip

    在编程领域,查找和替换字符串是常见的...总结,查找和替换字符串是编程中的基础操作,理解其工作原理和不同编程语言中的实现方式有助于提高代码效率和灵活性。通过学习和实践,开发者能够更好地应对各种文本处理需求。

    XSL中进行字符串替换

    接下来我们将详细介绍第二种方法——纯XSL模板实现子字符串替换。 ### 纯XSL模板实现子字符串替换 下面的示例代码展示了一个XSLT模板,该模板用于实现子字符串的替换: ```xml &lt;!-- 子字符串替换模板 --&gt; ...

    Jquery练习1:统计包含“a”或“A”的字符串的个数.zip

    首先,让我们了解JavaScript中如何查找字符串中特定字符的出现次数。在JavaScript中,可以使用`match()`函数,配合正则表达式来查找和计数。例如,如果我们有一个字符串`str`,我们可以这样统计字符"a"的出现次数: ...

    实例014——根据指定字符分割字符串.zip

    总结来说,无论是Python、Java、C#还是JavaScript,都有内置的函数或方法来根据指定的字符分割字符串。这种方法在处理大量文本数据时尤其有用,比如解析CSV文件、分析日志数据等。理解并熟练运用这些功能,能极大地...

    Javascript列表空间——collist

    这些数据项可以是简单的字符串,也可以是包含多个属性的对象,以便在列表中显示多列信息。 3. **排序功能** 该控件的一个关键特性是其内置的排序功能。用户可以通过调用`sort`方法并传入比较函数对列表进行排序。...

    web学习笔记 —— javascript基础

    这篇“web学习笔记——javascript基础”将带你走进JavaScript的世界,理解其基本概念和常用语法。 JavaScript语法基础: 1. 变量:在JavaScript中,变量用于存储数据。声明变量使用`var`关键字,例如`var myVar = ...

    javascript小工具之——cookie操作

    这篇博客“javascript小工具之——cookie操作”很可能会探讨如何利用JavaScript进行有效的Cookie操作。 Cookie是由Web服务器发送到用户的浏览器并存储在本地的小型文本文件。它们由键值对组成,可以设置过期时间,...

    JavaScript 字符串乘法

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

    javascript 学习资料——适合WEB初学者

    6. **ES6及以上版本的新特性**:包括箭头函数、模板字符串、解构赋值、let和const、Promise、async/await等,这些新特性使得JavaScript的代码更加简洁和易读。 7. **前端框架和库**:了解React、Vue.js、Angular等...

    JavaScript基础语法-strings.pdf

    JavaScript基础语法——strings

Global site tag (gtag.js) - Google Analytics