




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章字符串处理,字符串是字符的序列,是组织字符的基本数据结构,字符串处理对于绝大多数程序来说都是非常重要的。在JavaScript中字符串几乎无处不在,字符串的访问、查找、处理是JavaScript编程中经常需要面临的问题。JavaScript中的字符串处理分为两类:一类是基本的字符串处理函数,主要通过String对象的方法完成;另一类则是通过正则表达式进行相关的字符串处理,String对象和第4章介绍的RegExp对象都提供了相应的方法进行正则表达式的匹配和替换。,5.1JavaScript字符串处理函数,5.1.1访问字符串JavaScript中提供的访问字符串的属性和方法包括length,String.fromCharCode(),toString(),valueOf(),charAt()和charCodeAt()。以下给出了这些属性和方法的说明和用法。,1length属性,Length属性返回字符串的长度。用法:strobj.length,2fromCharCode方法,fromCharCode方法根据一串Unicode编码,返回相应的字符串。用法:String.fromCharCode(code1,code2,.),3toString方法,toString方法返回字符串的值。用法:strObj.toString(),4valueOf方法,valueOf方法返回字符串的值(与toString方法相同)。用法:strObj.valueOf(),5charAt方法,charAt方法返回字符串中指定位置处的字符。用法:strObj.charAt(index),6charCodeAt方法,charCodeAt方法返回字符串中指定位置处字符的Unicode编码。用法:strObj.charCodeAt(index),5.1.2查找字符串,使用indexOf和lastIndexOf方法,我们可以在字符串中查找指定字符串的位置,以下是它们的用法说明和示例。,1indexOf方法,indexOf方法在字符串中顺序查找子字符串,返回第一次出现子字符串的位置。用法:strobj.indexOf(substring,startindex),2lastIndexOf方法,lastIndexOf方法在字符串中倒序查找子字符串,返回第一次出现子字符串的位置。用法:strobj.lastIndexOf(substring,startindex),5.1.3比较字符串,比较字符串主要采用localeCompare方法。localeCompare方法将字符串与另一个字符串比较,返回比较结果。当字符串小于目标字符串时,返回一个负数;当字符串大于目标字符串时,返回一个正数;两者相等时,返回零。用法:strobj.localeCompare(strobj2),5.1.4修改字符串,修改字符串的目的是为了得到新的字符串,具体操作有连接已有字符串、从已有字符串中截取一部分和将已有字符串进行大小写的转换,相关的方法包括concat(),slice(),substring(),toLowerCase(),toLocaleLowerCase(),toUpperCase()和toLocaleUpperCase()。,1concat方法,concat方法用来连接两个或者多个字符串。用法:strobj.concat(string1,string2,string3,.),2slice方法,Slice方法返回字符串的片段。用法:strobj.slice(start,end),3substring方法,Substring方法返回字符串的片段。用法:strobj.split(start,end),4toLowerCase方法,toLowerCase方法返回字符串的小写形式。用法:strobj.toLowerCase(),5toLocaleLowerCase方法,toLocaleLowerCase方法将根据宿主环境的区域设置,返回字符串的小写形式。用法:strobj.toLocaleLowerCase(),6toUpperCase方法,toUpperCase方法返回字符串的大写形式。用法:strobj.toUpperCase(),7toLocaleUpperCase方法,toLocaleUpperCase方法根据宿主环境的区域设置,返回字符串的大写形式。用法:strobj.toUpperCase(),5.1.5正则表达式匹配与替换,1match方法match方法使用正则表达式对字符串进行匹配查找,并将查找到的结果以数组的形式返回。用法:strobj.match(regExp),(1)正则表达式没有设置全局查找标志(g),且不含子模式(2)正则表达式没有设置全局查找标志(g),且包含子模式(3)正则表达式设置了全局查找标志(g),2replace方法,replace方法使用正则表达式的方式对字符串进行替换。用法:strobj.replace(regExp,replaceText)replaceText参数有3种可能的情况。(1)replaceText是普通文本(2)replaceText是匹配变量(3)replaceText是一个函数,【例5-1】使用replace方法实现字符串的截断【例5-2】截断指定字符,3search方法,search方法在字符串中按正则表达式进行查找,返回符合模式的子字符串的首字符位置。用法:strobj.search(regExp),4split方法,split方法将字符串分割为子字符串,并返回由这些子字符串组成的数组。用法:strobj.split(delimiter,limit),5.2字符串处理应用示例,5.2.1计算字符串长度通常情况下,在JavaScript中获取字符串的长度大多使用String对象的length属性,但是涉及中文字符,问题就出现了。例如,字符串“大家好”,使用length属性将会返回6,是字符串的字节长度,而通常希望得到的长度是其真实的长度3。,要解决这个长度计算问题,其基本思路是这样的:首先使用正则表达式将字符串的中文字符替换为普通的字母或者其他普通字符,然后再计算长度。汉字对应的Unicode编码是在一定范围内的,因此匹配中文字符的正则表达式是:u4e00-u9fa5,计算字符串实际长度的函数如例5-3所示。,【例5-3】获取字符串长度【例5-4】获取字符串长度,5.2.2字符串验证,在JavaScript中进行字符串格式验证的最佳方法是使用正则表达式,调用正则表达式对象的test方法即可进行字符串的验证。例如验证字符串是否符合“4位数字-8位数字”的格式,可以通过如下的JavaScript代码实现:varstr=1234-12345678;varre=/d4-d8$/;alert(re.test(str);/输出true,表5-1常用正则表达式,5.2.3字符串填充,字符串填充,是指将字符串用指定的字符填充到一定长度。常见的应用场景:填写某些编码时要求输出固定长度的编码,例如原始字符串为“111”,用字符“0”填充到8位长度,结果为“00000111”。填充字符串的函数应该支持从字符串开始位置和结束位置填充两种方式,实现代码如例5-5所示。,【例5-5】字符串填充函数【例5-6】改进后的字符串填充函数,5.2.4字符串连接,字符串连接是最常见的字符串操作之一,应用最多的应该就是“+=”操作符了。对于规模较小的字符串连接操作而言,因为不需要过多地考虑效率问题,使用“+=”操作符没有什么不妥,但是如果遇到大量的字符串连接操作,直接使用“+=”操作符并不一定是最优的方法。,除了使用“+=”操作符进行字符串连接之外,在JavaScript中还可以使用Array对象的join方法实现字符串的连接。使用Array对象连接字符串的步骤是:首先创建一个空的Array对象,然后将字符串依次插入到Array对象中,最后调用join方法得到连接后的字符串。,【例5-7】JavaScript中的StringBuffer类【例5-8】StringBuffer类测试代码,5.2.5首字母大写,所谓首字母大写,是指将字符串中的第一个单词或者所有单词的首字母大写。其实现思路:使用正则表达式匹配第一个单词或者所有单词,将匹配到的单词首字母大写,如例5-9所示。【例5-9】首字母大写函数,5.2.6屏蔽非法用词,屏蔽非法用词,是指将字符串中非法用词用“*”号代替。其实现思路:使用正则表达式匹配所有非法用词,将非法用词中的每个字符用“*”号代替,如例5-10所示。【例5-10】屏蔽非法函数,5.2.7删除HTML标签
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 制衣小厂转让合同范例
- 制砂厂加工合同样本
- 与艺人合作合同样本
- 个人资金赠予合同样本
- 代理酒厂产品合同样本
- 农业肥料代理销售合同标准文本
- 会计软件合同范例
- 中介合同合同样本
- 办公家具买卖合同标准文本
- 加盟健康中心合作合同样本
- 公积金个人贷款合同模板
- 智能纺织技术的家居家纺应用
- DL∕T 5161.14-2018 电气装置安装工程质量检验及评定规程 第14部分:起重机电气装置施工质量检验
- 有机半导体完整版本
- 监护人考试试题
- DL-T5153-2014火力发电厂厂用电设计技术规程
- 山东司法警官职业学院招聘笔试真题2021
- 2024年甘肃省兰州市中考物理模拟试卷
- 2024年4月自考00155中级财务会计试题及答案
- JT-GQB-016-2000关于采用交通行业标准《公路桥涵标准图》有关问题的通知
- 家庭农场经营与管理-家庭农场产品营销
评论
0/150
提交评论