JavaScript字符串处理ppt课件_第1页
JavaScript字符串处理ppt课件_第2页
JavaScript字符串处理ppt课件_第3页
JavaScript字符串处理ppt课件_第4页
JavaScript字符串处理ppt课件_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章字符串处理 字符串处理应用示例5.2 JavaScript字符串处理函数5.1 字符串是字符的序列,是组织字符的基本数字符串是字符的序列,是组织字符的基本数据结构,字符串处理对于绝大多数程序来说都是据结构,字符串处理对于绝大多数程序来说都是非常重要的。非常重要的。 在在JavaScript中字符串几乎无处不在,字符中字符串几乎无处不在,字符串的访问、查找、处理是串的访问、查找、处理是JavaScript编程中经常编程中经常需要面临的问题。需要面临的问题。 JavaScript中的字符串处理分为两类:一类中的字符串处理分为两类:一类是基本的字符串处理函数,主要通过是基本的字符串处理函数,主

2、要通过String对象对象的方法完成;另一类则是通过正则表达式进行相的方法完成;另一类则是通过正则表达式进行相关的字符串处理,关的字符串处理,String对象和第对象和第4章介绍的章介绍的RegExp对象都提供了相应的方法进行正则表达式对象都提供了相应的方法进行正则表达式的匹配和替换。的匹配和替换。5.1 JavaScript字符串处理函数 5.1.1 访问字符串访问字符串 JavaScript中提供的访问字符中提供的访问字符串的属性和方法包括串的属性和方法包括length,String.fromCharCode(),toString(),valueOf(),charAt()和和charCod

3、eAt()。 以下给出了这些属性和方法的以下给出了这些属性和方法的说明和用法。说明和用法。1length属性属性 Length属性返回字符串的长度。属性返回字符串的长度。 用法:用法:strobj.length2fromCharCode方法方法 fromCharCode方法根据一串方法根据一串Unicode编码,编码,返回相应的字符串。返回相应的字符串。 用法:用法:String.fromCharCode(code1, code2, .)3toString方法方法 toString方法返回字符串的值。方法返回字符串的值。 用法:用法:strObj.toString()4valueOf方法方法

4、valueOf方法返回字符串的值与方法返回字符串的值与toString方法相同)。方法相同)。 用法:用法:strObj.valueOf()5charAt方法方法 charAt方法返回字符串中指定位置处的字方法返回字符串中指定位置处的字符。符。 用法:用法:strObj.charAt(index)6charCodeAt方法方法 charCodeAt方法返回字符串中指定位置处方法返回字符串中指定位置处字符的字符的Unicode编码。编码。 用法:用法:strObj.charCodeAt(index)5.1.2 查找字符串查找字符串 使用使用indexOf和和lastIndexOf方法,我们方法,

5、我们可以在字符串中查找指定字符串的位置,可以在字符串中查找指定字符串的位置,以下是它们的用法说明和示例。以下是它们的用法说明和示例。1indexOf方法方法 indexOf方法在字符串中顺序查找子字符串,方法在字符串中顺序查找子字符串,返回第一次出现子字符串的位置。返回第一次出现子字符串的位置。 用法:用法:strobj.indexOf(substring, startindex)2lastIndexOf方法方法 lastIndexOf方法在字符串中倒序查找子字方法在字符串中倒序查找子字符串,返回第一次出现子字符串的位置。符串,返回第一次出现子字符串的位置。 用法:用法:strobj.last

6、IndexOf(substring, startindex)5.1.3 比较字符串比较字符串 比较字符串主要采用比较字符串主要采用localeCompare方方法。法。localeCompare方法将字符串与另一个方法将字符串与另一个字符串比较,返回比较结果。字符串比较,返回比较结果。 当字符串小于目标字符串时,返回一个当字符串小于目标字符串时,返回一个负数;当字符串大于目标字符串时,返回负数;当字符串大于目标字符串时,返回一个正数;两者相等时,返回零。一个正数;两者相等时,返回零。 用法:用法:strobj.localeCompare(strobj2)5.1.4 修改字符串修改字符串 修改字

7、符串的目的是为了得到新的字修改字符串的目的是为了得到新的字符串,具体操作有连接已有字符串、从已符串,具体操作有连接已有字符串、从已有字符串中截取一部分和将已有字符串进有字符串中截取一部分和将已有字符串进行大小写的转换,相关的方法包括行大小写的转换,相关的方法包括concat(),slice(),substring(),toLowerCase(),toLocaleLowerCase(),toUpperCase()和和toLocaleUpperCase()。 1concat方法方法 concat方法用来连接两个或者多个字符串。方法用来连接两个或者多个字符串。 用法:用法:strobj.concat

8、(string1, string2, string3, .)2slice方法方法 Slice方法返回字符串的片段。方法返回字符串的片段。 用法:用法:strobj.slice(start, end)3substring方法方法 Substring方法返回字符串的片段。方法返回字符串的片段。 用法:用法:strobj.split(start, end)4toLowerCase方法方法 toLowerCase方法返回字符串的小写形式。方法返回字符串的小写形式。 用法:用法:strobj.toLowerCase()5toLocaleLowerCase方法方法 toLocaleLowerCase方法将

9、根据宿主环境的方法将根据宿主环境的区域设置,返回字符串的小写形式。区域设置,返回字符串的小写形式。 用法:用法:strobj.toLocaleLowerCase()6toUpperCase方法方法 toUpperCase方法返回字符串的大写形式。方法返回字符串的大写形式。 用法:用法:strobj.toUpperCase()7toLocaleUpperCase方法方法 toLocaleUpperCase方法根据宿主环境的方法根据宿主环境的区域设置,返回字符串的大写形式。区域设置,返回字符串的大写形式。 用法:用法:strobj.toUpperCase()5.1.5 正则表达式匹配与替换正则表达

10、式匹配与替换 1match方法方法 match方法使用正则表达式对字符串进方法使用正则表达式对字符串进行匹配查找,并将查找到的结果以数行匹配查找,并将查找到的结果以数组的形式返回。组的形式返回。 用法:用法:strobj.match(regExp)(1正则表达式没有设置全局查找标正则表达式没有设置全局查找标志志g),且不含子模式),且不含子模式 (2正则表达式没有设置全局查找标正则表达式没有设置全局查找标志志g),且包含子模式),且包含子模式 (3正则表达式设置了全局查找标志正则表达式设置了全局查找标志g) 2replace方法方法replace方法使用正则表达式的方式对字符串进行替方法使用正

11、则表达式的方式对字符串进行替换。换。用法:用法:strobj.replace(regExp, replaceText)replaceText参数有参数有3种可能的情况。种可能的情况。(1replaceText是普通文本是普通文本(2replaceText是匹配变量是匹配变量(3replaceText是一个函数是一个函数 【例【例5-1】 使用使用replace方法实现字符串的方法实现字符串的截断截断 【例【例5-2】 截断指定字符截断指定字符3search方法方法 search方法在字符串中按正则表达式进行查方法在字符串中按正则表达式进行查找,返回符合模式的子字符串的首字符位找,返回符合模式的

12、子字符串的首字符位置。置。 用法:用法:strobj.search(regExp)4split方法方法 split方法将字符串分割为子字符串,并返回方法将字符串分割为子字符串,并返回由这些子字符串组成的数组。由这些子字符串组成的数组。 用法:用法:strobj.split(delimiter, limit)5.2 字符串处理应用示例 5.2.1 计算字符串长度计算字符串长度 通常情况下,在通常情况下,在JavaScript中中获取字符串的长度大多使用获取字符串的长度大多使用String对象的对象的length属性,但是涉及中文属性,但是涉及中文字符,问题就出现了。字符,问题就出现了。 例如,字

13、符串例如,字符串“大家好大家好”,使,使用用length属性将会返回属性将会返回6,是字符,是字符串的字节长度,而通常希望得到的串的字节长度,而通常希望得到的长度是其真实的长度长度是其真实的长度3。 要解决这个长度计算问题,其基本思要解决这个长度计算问题,其基本思路是这样的:首先使用正则表达式将字符路是这样的:首先使用正则表达式将字符串的中文字符替换为普通的字母或者其他串的中文字符替换为普通的字母或者其他普通字符,然后再计算长度。普通字符,然后再计算长度。 汉字对应的汉字对应的Unicode编码是在一定范围编码是在一定范围内的,因此匹配中文字符的正则表达式是:内的,因此匹配中文字符的正则表达式

14、是:u4e00-u9fa5,计算字符串实际长度的函数,计算字符串实际长度的函数如例如例5-3所示。所示。 【例【例5-3】 获取字符串长度获取字符串长度 【例【例5-4】 获取字符串长度获取字符串长度 5.2.2 字符串验证字符串验证 在在JavaScript中进行字符串格式验证的中进行字符串格式验证的最佳方法是使用正则表达式,调用正则表最佳方法是使用正则表达式,调用正则表达式对象的达式对象的test方法即可进行字符串的验证。方法即可进行字符串的验证。例如验证字符串是否符合例如验证字符串是否符合“4位数字位数字-8位数位数字的格式,可以通过如下的字的格式,可以通过如下的JavaScript代代

15、码实现:码实现: var str = 1234-12345678; var re = /d4-d8$/; alert(re.test(str); / 输出输出true表5-1常用正则表达式验 证 类 型正则表达式电子邮件w+(-+.w+)*w+(-.w+)*.w+(-.w+)*URLa-zA-z+:/(w+(-w+)*)(.(w+(-w+)*)*(?S*)?日期(19)1|(20)1)d2)|d2)011d10-31d1匹配格式如:20190416,070416,范围19002099年验 证 类 型正则表达式中国邮政编码1-9d5(?!d)国内电话号码d3-d8|d4-d7手机号码+0,1(d

16、)1,3 ?(-?(d)| )1,12)+$ISBN号码d-d5-d3-d身份证号d15|d170-9*信用卡号VISA:(?:(?:4)(?:d12|d15)$Master:51-5d2s-?d4s-?d4s-?d4$IP地址d+.d+.d+.d+QQ号码1-90-94,非负整数d+$正整数0-9*1-90-9*$非正整数(-d+)|(0+)$负整数-0-9*1-90-9*$非负浮点数d+(.d+)?$正浮点数(0-9+.0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*1-90-9*)$非正浮点数(-d+(.d+)?)|(0+(.0+)?)$负浮点数(-(0-9+.

17、0-9*1-90-9*)|(0-9*1-90-9*.0-9+)|(0-9*1-90-9*)$浮点数(-?d+)(.d+)?$文件名/目录名/*?|:5.2.3 字符串填充字符串填充 字符串填充,是指将字符串用指定的字符串填充,是指将字符串用指定的字符填充到一定长度。字符填充到一定长度。 常见的应用场景:填写某些编码时要求常见的应用场景:填写某些编码时要求输出固定长度的编码,例如原始字符串为输出固定长度的编码,例如原始字符串为“111”,用字符,用字符“0填充到填充到8位长度,结位长度,结果为果为“00000111”。 填充字符串的函数应该支持从字符串填充字符串的函数应该支持从字符串开始位置和结

18、束位置填充两种方式,实现开始位置和结束位置填充两种方式,实现代码如例代码如例5-5所示。所示。 【例【例5-5】 字符串填充函数字符串填充函数 【例【例5-6】 改进后的字符串填充函数改进后的字符串填充函数 5.2.4 字符串连接字符串连接 字符串连接是最常见的字符串操作之一,字符串连接是最常见的字符串操作之一,应用最多的应该就是应用最多的应该就是“+=”操作符了。操作符了。 对于规模较小的字符串连接操作而言,对于规模较小的字符串连接操作而言,因为不需要过多地考虑效率问题,使用因为不需要过多地考虑效率问题,使用“+=”操作符没有什么不妥,但是如果遇到操作符没有什么不妥,但是如果遇到大量的字符串

19、连接操作,直接使用大量的字符串连接操作,直接使用“+=”操操作符并不一定是最优的方法。作符并不一定是最优的方法。 除了使用除了使用“+=”操作符进行字符串连接操作符进行字符串连接之外,在之外,在JavaScript中还可以使用中还可以使用Array对对象的象的join方法实现字符串的连接。方法实现字符串的连接。 使用使用Array对象连接字符串的步骤是:对象连接字符串的步骤是:首先创建一个空的首先创建一个空的Array对象,然后将字符对象,然后将字符串依次插入到串依次插入到Array对象中,最后调用对象中,最后调用join方法得到连接后的字符串。方法得到连接后的字符串。 【例【例5-7】 JavaScript中的中的StringBuffer类类 【例【例5-8】 StringBuffer类测试代码类测试代码 5.2.5 首字母大写首字母大写 所谓首字母大写,是指将字符串中的第所谓首字母大写,是指将字符串中的第一个单词或者所有单词的首字母大写。一个单词或者所有单词的首字母大写。 其实现思路:使用正则表达

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论