JavaScript中String对象的方法介绍


Posted in Javascript onJanuary 04, 2017

1.字符方法

1.1 charAt() 方法,返回字符串中指定位置的字符。

var question = "Do you like JavaScript?";
alert(question.charAt(5)); //"u"

字符串 "Do you like JavaScript?" 的长度为23,即位置从0到22。指定位置5处的字符是"u"。

1.2 charCodeAt() 方法,返回字符串中指定位置的字符编码。

var question = "Do you like JavaScript?";
alert(question.charCodeAt(5)); //"117"

位置5处的字符"u"的字符编码是"117"。

charAt() 和 charCodeAt() 都是针对单个字符进行操作的方法。

2.字符串操作方法

这个小节的字符串操作方法是关于创建新字符串的方法。这些方法包括 concat()、slice()、substring()、substr()。

concat() 是通过拼接的方式创建新的字符串,slice()、substring()、substr() 是通过提取的方式创建新的字符串。

这四种方法不会改变原始字符串。

2.1 concat() 方法,将一个或多个字符串拼接起来,返回新的字符串。不改变原始字符串。

concat() 方法可以接受一个或多个参数。

concat() 方法接受一个参数。

var love = "I love ";
var result = love.concat("you");
alert(result); //"I love you"
alert(love); //"I love "

love 调用了 concat() 方法,返回 "I love you",love 的值并没有改变。

concat() 方法接受多个参数。

var love = "I love ";
var result = love.concat("you"," very"," much","!");
alert(result); //"I love you very much!"
alert(love); //"I love "

不过,在实践中,通常用 + 号操作符将字符串拼接在一起。

2.2 slice()、substring()、substr() 方法,通过提取原始字符串的部分或全部来创建新的字符串,返回创建后的新字符串,不改变原始字符串。

slice()、substring()、substr() 方法可以接受一个或两个参数,这些参数为数字,可以是正值参数,也可以是负值参数。

2.2.1 参数为正值时

传入两个参数的情况

对于 slice() 、substring() ,第一个参数为提取的开始位置(包括开始位置的字符),第二个参数为提取的结束位置(不包括结束位置的字符)。

对于 substr(),第一个参数为提取的开始位置(包括开始位置的字符),第二个参数为提取的字符个数。

var hello = "I love JavaScript!";
 alert(hello.slice(7,11)); //"Java"
 alert(hello.substring(7,11)); //"Java"
 alert(hello.substr(7,11)); //"JavaScript!"

字符串 "I love JavaScript!" 长度为18,即位置从0到17。第7位的字符是 "J",第11位的字符是 "S"。

slice()、substring() 提取的子字符串是从第7位开始(包括第7位的 "J")到第11位结束(不包括第11位的 "S"),于是用这两个方法提取的新字符串是 "Java"。而 substr() 则是从第7位 "J" 开始(包括第7位的 "J"),提取11个字符,最后提取的新字符串为 "JavaScript!"。

传入一个参数的情况

参数为正值,传入一个参数时,slice()、substring()、substr() 方法提取原理相同,即从参数的位置开始提取(包括开始位置的字符),一直提取到原始字符串的最后一个字符(包括最后一个字符)。

var hello = "I love JavaScript!";
alert(hello.slice(7)); //"JavaScript!" 
alert(hello.substring(7)); //"JavaScript!"
alert(hello.substr(7)); //"JavaScript!"

传入了一个参数7,即从第7位开始(包括第7位的 "J"),一直提取到原始字符串的最后一位(包括最后一位的 "!")。于是,只有一个参数,且参数为正值时,slice()、substring()、substr() 方法返回的新字符串相同。

2.2.2 参数为负值时,不管是一个参数还是两个参数

slice() 方法会将传入的所有负值与字符串长度相加。

substring() 方法会将传入的所有负值都转化为0。

substr() 方法,若第一个参数是负值,则将负值与字符串长度相加;若第二个参数是负值,则将其转化为0。

var hello = "I love JavaScript!";
alert(hello.slice(-11));  //"JavaScript!" 
alert(hello.substring(-11)); //"I love JavaScript!"
alert(hello.substr(-11));  //"JavaScript!"
alert(hello.slice(-11,-9)); //"Ja" 
alert(hello.substring(-11,-9)); //""(空字符串)
alert(hello.substr(-11,-9)); //""(空字符串)

当传入一个负值参数-1时,

slice() 将负值参数与字符串长度相加,前面提到过,字符串 "I love JavaScript!" 的长度为18,于是 slice(-11) 即相当于 slice(7),即从第7位开始提取,最后提取的子字符串为 "JavaScript!";

substring() 会将负值转化为0,substring(-11) 相当于 substring(0),即从第0位开始提取,最后提取的子字符串为 "I love JavaScript!";

substr() 将负值参数与字符串长度相加,substr(-11) 相当于 substr(7),即从第7位开始提取,最后提取的子字符串为 "JavaScript!"。

当传入参数-11,-9时,

slice() 将所有负值参数与字符串长度相加,slice(-11,-9) 相当于 slice(7,9),最后提取的子字符串为 "Ja";

substring() 会将所有负值转化为0,substring(-11,-9) 相当于 substring(0,0),即从第0位开始,第0位结束,即提取的是空字符串;

substr() 将第一个参数-11与字符串长度相加,将第二个参数-9转化为0,substr(-11,-9) 相当于 substr(7,0),即从第7位开始,提取0个字符串,即也是空字符串。

3.字符串位置方法

indexOf() 方法和 lastIndexOf() 方法,返回要检索的子字符串在原始字符串中第一次出现的位置。

indexOf() 方法从原始字符串开头向后检索子字符串,lastIndexOf() 方法从原始字符串末尾向前检索子字符串。

indexOf() 方法和 lastIndexOf() 方法接受一个必选参数。

var test = "balala balala balala";
alert(test.indexOf("a")); //"1"
alert(test.lastIndexOf("a")); //"19"

indexOf() 从开始位置向后检索子字符串 "a","a" 第一次出现的位置是1;lastIndexOf() 从末尾位置向前检索子字符串 "a","a" 第一次出现的位置是19。

如果没有找到要检索的子字符串,则这两个方法都会返回-1。

var test = "balala balala balala";
alert(test.indexOf("h")); //"-1"
alert(test.lastIndexOf("h")); //"-1"

indexOf() 方法和 lastIndexOf() 方法接受第二个可选参数,表示从原始字符串的哪个位置开始。

var test = "balala balala balala";
alert(test.indexOf("a",7)); //"8"
alert(test.lastIndexOf("a",7)); //"5"

indexOf("a",7) 从第7位向后检索子字符串 "a","a" 第一次出现的位置是8;lastIndexOf("a",7) 从第7位向前检索子字符串 "a","a" 第一次出现的位置是5。

4.字符串大小写换换方法

ECMAScript  中涉及字符串大小写转换的方法有4个:toUpperCase()、toLocaleUpperCase()、toLowerCase()、toLocaleLowerCase()

toUpperCase() 和 toLowerCase() 是典型的方法,toLocaleUpperCase() 和 toLocaleLowerCase() 是针对当地地区的方法,以保证字符串正确的转换。

在不知道自己的代码在哪种语言环境中运行时,使用针对当地地区的方法更稳妥一些。

var test = "balala balala balala";
 alert(test.toLocaleUpperCase()); //"BALALA BALALA BALALA"
 alert(test.toUpperCase());  //"BALALA BALALA BALALA"
 alert(test.toLocaleLowerCase()); //"balala balala balala"
 alert(test.toLowerCase());  //"balala balala balala"

5.trim()方法

trim() 方法会创建原始字符串的副本,并删除前置和后缀的所有空格,然后返回结果,不会改变原始字符串。

var test = " balala balala balala ";
 var test1 = test.trim();
 alert(test1); //"balala balala balala"
 alert(test); // " balala balala balala "
 alert(test1.length); //"20"
 alert(test.length); //"28"

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
Ruffy javascript 学习笔记
Nov 30 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
jQuery后代选择器用法实例
Dec 23 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
Node.js程序中的本地文件操作用法小结
Mar 06 Javascript
jQuery操作cookie
Aug 08 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
Dec 19 Javascript
javascript填充默认头像方法
Feb 22 Javascript
微信小程序自定义波浪组件使用方法详解
Sep 21 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
Sep 30 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 Javascript
js select下拉联动 更具级联性!
Apr 17 #Javascript
基于JavaScript实现熔岩灯效果导航菜单
Jan 04 #Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 #Javascript
jquery+ajax实现省市区三级联动效果简单示例
Jan 04 #Javascript
基于jQuery实现火焰灯效果导航菜单
Jan 04 #Javascript
深入理解Javascript中的valueOf与toString
Jan 04 #Javascript
使用UrlConnection实现后台模拟http请求的简单实例
Jan 04 #Javascript
You might like
php和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
2011/11/15 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
ktv好的活动方案
2014/08/17 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
中学总务处工作总结
2015/08/12 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
python基础之while循环语句的使用
2021/04/20 Python
MySQL创建管理HASH分区
2022/04/13 MySQL
MySQL 数据库范式化设计理论
2022/04/22 MySQL