JavaScript的String字符串对象常用操作总结


Posted in Javascript onMay 26, 2016

创建String对象方式
声明:String对象的方法也可以在所有基本字符串值中访问到。
调用构造函数String():

var str = new String();
 var str = new String('hello world');//初始化str,str.length = 11;

String访问及查找的方式
1.访问(通过索引)
(1)charAt()或[]
1个参数,参数为字符位置,返回字符

var strValue = new String('hello world');
console.log(strValue.charAt(1));//e
console.log(strValue[1]);//e,IE7及以下版本使用这种方式,会返回undefined

(2)charCodeAt()
1个参数,参数为字符位置,返回字符编码

var strValue = new String('hello world');
console.log(strValue.charCodeAt(1));//101

2.查找位置
(1)indexOf()
第一个参数为指定子字符串,第二个参数为检索位置。返回索引,如果没有找到则返回-1

var str = 'hello world'
str.indexOf('l');//2,返回找到的第一个字符的位置
str.indexOf('l',6);//9

(2)lastIndexOf()
与indexOf()的区别在于,lastIndexOf()是从字符串的末尾向前搜索子字符串

字符方法
1.扩展字符串
concat()
接受任意数量参数,用于将一个或多个字符串拼接起来,返回拼接得到新的字符串副本。

var str = new String('hello');
var result = str.concat(' world');
console.log(result);//hello world
typeof result//"string"

2.获取子字符串方法
slice(),substr(),substring(),这三个方法都会返回被操作字符串的子字符串副本,而且也都接受1或2个参数,前闭后开[)
(1)slice()

var str = 'hello';
str.slice(0,2);//"he",第一个参数指定字符串开始的位置,第二个参数表示字符串到哪里结束
str.slice(-3);//"llo",o代表-1,依次倒数,-3代表倒数第三个的l
str.slice(-2,-1);//"l",同理,-2代表倒数第二个l,-1代表倒数第一的o

(2)substring()

var str = 'hello';
str.substring(0,2);//"he",此时的参数意义同str.slice(0,2)
str.substring(-3);//"hello",substring()方法会把所有负值参数转换为0
str.substring(-3,-2);//"",同上

(3)substr()

var str = 'hello';
str.substr(1,2);//"el",第一个参数指定字符串的开始位置,第二个参数指定的则是返回的字符个数
str.substr(-3);//"llo",此时的参数意义同str.slice(-3)
str.substr(-3,-1);//"",substr()方法会将负的第二个参数转换为0

substr()方法传递负值时在IE中存在问题,它会返回原始的字符串,IE9修复了这个问题

3.将字符串转换为数组
split()
基于指定的分隔符(可以是字符串,也可以是RegExp对象)将字符串分割成多个子字符串,并将结果放在一个数组中,可接受可选的第二个参数,用于指定数组的大小,返回数组。

var color = 'blue,red,orange';
color.split();//["red,blue,orange"],长度为1
color.split(',');//["blue", "red", "orange"],长度为3
var color = 'blue-red-orange';
color.split('-');//["blue", "red", "orange"],长度为3
color.split(',',2);//["blue", "red"]

4.字符串大小写转换
toLowerCase(),toUpperCase()

var str = 'hello';
str.toUpperCase();//"HELLO"
str.toLowerCase();//"hello"

5.删除字符串空格方法
trim()
删除字符串中前置以及后缀的所有空格,然后返回结果副本。

var str = ' hello world ';
str.trim()//"hello world"

6.字符串的模式匹配方法
(1)match()
参数:只接受一个参数,要么是一个正则表达式,要么是一个RegExp()对象。
返回:数组。数组中的第一项是与整个模式匹配的字符串,之后的每一项(如果有)保存着正则表达式捕获组匹配的字符串
本质上与调用exec()相同。

var text = 'cat, bat, sat, fat';
var pattern = /.at/;

var matches = text.match(pattern);
matches // ["cat"]
matches.input // "cat, bat, sat, fat"
matches.index // 0

(2)search()
参数:与match()方法相同。
返回:字符串中第一个匹配项的索引,如果没有匹配项,则返回-1。
search()方法始终从前向后找

var text = 'cat, bat, sat, fat';
var pattern = /at/;

text.search(pattern) // 1

(3)replace()
参数:接收两个参数,第一个参数可以是一个RegExp对象或者一个字符串(这个字符串不会转换成正则表达式),第二个参数可以是一个字符串或者一个函数。
如果 第一个参数是字符串,那么只会替换第一个子字符串。要想替换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局标志(g)标志。
如果 第二个参数是字符串,那么还可以使用一些特殊的字符序列,将正则表达式操作得到的值插入到结果字符串中。
也可以是函数,传递给函数的参数依次是模式的匹配项,模式的匹配项在字符串中的位置,和原始字符串。在正则表达式定义了多个捕获组的情况下,传递给函数的参数依次是模式的匹配项,第一个捕获组的匹配项,以此类推,但最后两个参数分别是模式的匹配项在字符串中的位置和原始字符串。

字符序列 替换文本
$$ $
$& 匹配整个pattern中的子字符串
$' 匹配的子字符串之后的子字符串
$` 匹配的字符串之前的子字符串
$n 匹配第n个捕获组中的子字符串,$1
$nn 匹配第nn个捕获组的子字符串,$01

var text = 'xxx-love-xxx';
var pattern = /xxx/g;

var result = text.replace(pattern,'2')
result// "2-love-2"

text.replace(/(xxx)-\w{4}-(xxx)/g,'I love YOU');//"I love YOU"
var text = 'xxx-love-xxx';
var pattern1 = /xxx/g;

var result = text.replace(pattern1,'$$')
result// "$-love-$"

var result = text.replace(pattern1,'$&2')
result//"xxx2-love-xxx2"

var result = text.replace(pattern1,'$\'')
result//"-love-xxx-love-"
Javascript 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
10个实用的脚本代码工具
May 04 Javascript
JS实现图片横向滚动效果示例代码
Sep 04 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 Javascript
javascript轮播图算法
Oct 21 Javascript
Bootstrap Search Suggest使用例子
Dec 21 Javascript
详解node HTTP请求客户端 - Request
May 05 Javascript
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
vue 指令之气泡提示效果的实现代码
Oct 18 Javascript
vue 弹出遮罩层样式实例
Jul 22 Javascript
如何在selenium中使用js实现定位
Aug 18 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
May 26 #Javascript
jQuery过滤特殊字符及JS字符串转为数字
May 26 #Javascript
Bootstrap自定义文件上传下载样式
May 26 #Javascript
jQuery控制文本框只能输入数字和字母及使用方法
May 26 #Javascript
JavaScript中0和""比较引发的问题
May 26 #Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
May 26 #Javascript
怎么引入(调用)一个JS文件
May 26 #Javascript
You might like
PHP新手上路(十一)
2006/10/09 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
PHP数组操作类实例
2015/07/11 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python实现partial改变方法默认参数
2014/08/18 Python
Python单例模式的两种实现方法
2017/08/14 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Python面向对象之类的定义与继承用法示例
2019/01/14 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
劳动实践课感言
2014/02/01 职场文书
班主任经验交流材料
2014/12/16 职场文书
商务邀请函
2015/01/30 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
JavaScript的Set数据结构详解
2022/02/18 Javascript