JavaScript高级程序设计10.pdf
String类型有几种操作字符串的方法
concat()方法拼接任意多个字符串,不修改原字符串
var stringValue=“hello ”;
var result=stringValue.concat("world");
alert(result); //"hello world"
alert(stringValue); //"hello"
在实际的操作中更多的使用(+)操作符
ECMAScript还提供了三个基于子字符串创建新字符串的方法:slice()、substr()和substring(),它们都接收一或两个参数,第一个参数指定子字符串的开始位置,第二个参数如不指定则直至字符串结束。
slice()和substring()第二个参数指定子字符串最后一个字符后面的位置,而substr()的第二个参数指定的是返回字符个数
var str=“hello world”;
alert(str.slice(3)); //"lo world"
alert(str.substring(3)); //"lo world"
alert(str.substr(3)); //"lo world"
alert(str.slice(3,7)); //"lo w"
alert(str.substring(3,7)); //"lo w"
alert(str.substr(3,7)); //"lo worl"
如果传入的参数是负数,三个方法的行为各不相同
var str=“hello world”;
alert(str.slice(-3)); //"rld" 将负的参数都与字符串的长度相加
alert(str.substring(-3)); //"hello world" 将负的参数都转换为0
alert(str.substr(-3)); //"rld" 将第一个负的参数与字符串的长度相加,将第二个负的参数转换为0
alert(str.slice(3,-4)); //"lo w"
alert(str.substring(3,-4)); //"hel"
alert(str.substr(3,-4)); //“”(空字符串)
字符串的位置方法
indexOf()和lastIndexOf(),前者从前往后搜索,后者往前搜索,它们都接收一个或两个参数,第一个为要搜索的字符,第二个(可选)为搜索的位置,如没有找到则返回-1
var str=“hello world”;
alert(str.indexOf("o",6)); //7
alert(str.lastIndexOf("o",6)); //4
检测它的返回值是否大于-1来判断是否存在
trim()方法会创建字符串的一个副本,删除前置以及后缀的所有空格
var str=“ hello world ”;
var tri=str.trim();
alert(str); //" hello world "
alert(tri); //"hello world"
字符串大小写转换
var str=“hello world”;
str.toLowerCase() str.toUpperCase()
str.toLocaleLowerCase() str.toLocaleUpperCase() //针对少数语言(如土耳其语)Unicode大小写转换应用特殊规则
字符串的模式匹配方法
match()接收一个参数,要么是一个正则表达式要么是一个RegExp对象,match()方法返回的是一个数组
var text="cat,bat,sat,fat";
var pattern=/.at/;
//与pattern.exec(text)相同
var matches=text.match(pattern);
alert(matches.index); //0
alert(matches[0]); //"cat"
alert(pattern.lastIndex); //0 语法RegExpObject.lastIndex,储存着上一次匹配文本之后第一个字符的位置
search()接收的唯一参数与match()相同,返回的是字符串中第一个匹配项的索引,如果没有找到匹配项,则返回-1,search()方法始终是从字符串开头向后查找模式
var text="cat,bat,sat,fat";
var pos=text.search(/at/);
alert(pos); //1
replace()方法替换子字符串,接收两个参数,第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会被转换成正则表达式),第二个参数是一个字符串或者一个函数
如果第一个参数是字符串,那么会替换第一个子字符串,想要替换所有子字符串唯一办法就是提供一个正则表达式,而且要指定全局(g)标志
var text="cat,bat,sat,fat";
var result=text.replace("at","ong");
alert(result); //"cong,bat,sat,fat"
var result=text.replace(/at/g,"ong");
alert(result); //"cong,bong,song,fong"
另外,如果第二个参数是字符串,还可以使用一些特殊的字符序列,将正则表达式操作得到的值插入到结果字符串中
$& 匹配整个模式的子字符串
$' 匹配的子字符串之前的子字符串
$` 匹配的子字符串之后的子字符串
$n 匹配第n(0~9)个捕获组的子字符串,正则表达式里如果没有定义捕获组,则使用空字符串
$nn 匹配第nn(01~99)个捕获组的子字符串,正则表达式里如果没有定义捕获组,则使用空字符串
var text="cat,bat,sat,fat";
var result=text.replace(/(.at)/g,"word($1)");
alert(result); //word(cat),word(bat),word(sat),word(fat)
replace()方法的第二个参数也可以是一个函数,实现更精细的替换操作
在只有一个匹配项(即与模式匹配的字符串)的情况下,会向整个函数传递3个参数:模式的匹配项、模式匹配项在字符串中的位置和原始字符串
在正则表达式中定义了多个捕获组的情况下,参数依次是模式的匹配项、第一个捕获组的匹配项、第二个捕获组的匹配项……最后两个参数仍然是模式匹配项在字符串中的位置和原始字符串
function htmlEscape(){
return text.replace(/[<>"&]/g,function(match,pos,originalText){
switch(match){
case"<":
return "<";
case">":
return">";
case"&":
return"&";
case"\"":
return""";
}
});
}
以上函数能够转义大于号、小于号、和号以及双引号
最后一个与模式匹配有关的方法是split(),可以基于指定的分隔符将字符串分割成多个子字符串,并将结果放在一个数组中,可选的第二个参数用于指定数组的大小,确保返回的数组不超过既定长度
var colorText="red。blue。green。yellow";
var colors1=colorText.split("。"); //["red","blue","green","yellow"]
var colors2=colorText.split("。",2); //["red","blue"]
var colors3=colorText.split(/[^\。]+/); //["","。","。","。",""]
----------------------------------------------------------------------------------------------告一段落------------------------------------------------------------------------------------------------------------------
JavaScript高级程序设计10.pdf的更多相关文章
- JavaScript高级程序设计61.pdf
JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...
- JavaScript高级程序设计54.pdf
过滤输入 对于一些浏览器,可以使用正则表达式里的text()测试用户按下的按键,Firefox和safari(3.1版本之前)会对向上向下.退格键和删除键触发keypress事件,在Firefox中, ...
- JavaScript高级程序设计21.pdf
第10章 DOM DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口) IE中所有DOM对象都是以COM对象的形式实现的,这意味着IE中的对象与原生JavaScript对象 ...
- JavaScript高级程序设计17.pdf
导航和打开窗口 使用window.open()方法可以导航到一个特定的URL也可以打开一个新的浏览器窗口,接收4个参数:要加载的URL.窗口目标.特性字符串和一个表示新页面是否取代浏览器历史记录中当前 ...
- JavaScript高级程序设计6.pdf
ECMAScript通过RegExp类型来支持正则表达式 var expression=/pattern/flags;其中模式(pattern)部分是正则表达式,可以包含字符类.限定符.分组.向前查找 ...
- JavaScript高级程序设计2.pdf
第三章 基本概念 区分大小写 ECMAScript中的一切(变量.函数名和操作符)都区分大小写 标识符 指变量.函数.属性的名字或者函数的参数 第一个字符必须是一个字母.下划线或美元符号,其它字符可以 ...
- JavaScript高级程序设计60.pdf
错误处理 try-catch语句 try{ //可能会导致错误的代码 }catch(error){ //在错误发生时如何处理 } error是一个包含着错误信息的对象,它有一个message属性,保存 ...
- JavaScript高级程序设计58.pdf
15章 使用Canvas绘图 略 16章 HTML5脚本编程 HTML5规范了新的HTML标记和JavaScript API,以便简化创建动态Web界面的工作 跨文档消息传递 简称XDM,指来自不同域 ...
- JavaScript高级程序设计57.pdf
表单序列化 首先了解一下浏览器如何将数据发送给服务器 对表单字段的名称和值进行URL编码,使用和号(&)分隔 不发送禁用的表单字段 只发送勾选的复选框和单选按钮 不发送type为“reset” ...
随机推荐
- mvc5 + ef6 + autofac搭建项目(三)
前面已经基本完成了框架的搭建,后面就是实现了,后面主要说下前端的东西bootstrap的使用和相关插件. 看图: 实现比较简单,在主页面只引入共用部分的 js等相关包,毕竟不是所有页面都需要列表以及其 ...
- Git查看、删除、重命名远程分支和tag
这篇文章记录我在使用git的过程中碰到远程分支和tag的相关内容,提纲: 查看远程分支 删除远程分支和tag 删除不存在对应远程分支的本地分支 重命名远程分支 把本地tag推送到远程 获取远程tag ...
- MySQL常见问题汇总(原创)
本文记录了使用Mysql时遇到的问题,持续更新中... 1.在windows命令行下登录mysql时报错: C:\Program Files\MySQL\MySQL Server 5.0\bin> ...
- 类库探源——System.ValueType
一.MSDN描述 ValueType 类:提供值类型的基类 命名空间: System 程序集: mscorlib.dll 继承关系: 值类型包括:字符.整数.浮点.布尔.枚举.结构(其实字符.整数 ...
- Javascript实现图片库效果
思路: 无序列表加载图片文件.用img标签加载一张图片作为占位符.当点击照片链接时,改变<a>元素的href属性.并且阻止浏览器的默认行为. 动态改变描述文字,在图片下方增加P标签.通过获 ...
- 寒假ACM训练(二)
放了假的效率明显就低起来,最近也一直在学习Ubuntu,所以一直等到今天才写. 还是在用PC. 真的十分郁闷这个LC-Display,其实从思路上是有很多.不过我最后把他当成8字,分成了七笔. 一直W ...
- Qt5对付中文真好用
Qt好多C++程序员都在用,Qt4大家可能用的多,到了Qt5不熟悉的人到是很多,其中我喜欢的特性也是和Qt4大不一样的地方就是对中文的处理. Qt4中使用“QTextCodec::setCodecFo ...
- Windows phone 之Image控件
wp目前支持的图片格式为png和jpeg ,我们可以通过设置Source属性设置图片源. 还有两个属性是:Stretch,Opacity Stretch属性 image的拉伸行为有此属性决定,此属性是 ...
- js更新页面,随机更新数字
代码1: <script> function getRandom(){ var i = Math.random()*40+160; document.getElementById(&quo ...
- mysql的查询缓存模式介绍
mysql的查询缓存 查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的 SQL语句后, 执行这条SQL语句,然后将查询到的结 ...