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 相关文章推荐
JavaScript入门教程(1) 什么是JS
Jan 31 Javascript
JavaScript动态设置div的样式的方法
Dec 26 Javascript
jQuery自制提示框tooltip改进版
Aug 01 Javascript
将json转换成struts参数的方法
Nov 08 Javascript
js遮罩效果制作弹出注册界面效果
Jan 25 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
Node.js 使用流实现读写同步边读边写功能
Sep 11 Javascript
手写Node静态资源服务器的实现方法
Mar 20 Javascript
在小程序开发中使用npm的方法
Oct 17 Javascript
Node爬取大批量文件的方法示例
Jun 28 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
js+canvas实现两张图片合并成一张图片的方法
Nov 01 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邮件专题
2006/10/09 PHP
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
说说PHP的autoLoad自动加载机制
2012/09/27 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
jquery中添加属性和删除属性
2015/06/03 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
深入学习python多线程与GIL
2019/08/26 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
会计专业推荐信
2013/10/29 职场文书
班长竞选演讲稿
2014/04/24 职场文书
通知格式
2015/04/27 职场文书
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL