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 相关文章推荐
JS控制表格隔行变色
Jun 26 Javascript
JS加ASP二级域名转向的代码
May 17 Javascript
直接生成打开窗口代码,不必下载
May 14 Javascript
拖动table标题实现改变td的大小(css+js代码)
Apr 16 Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 Javascript
jquery实现LED广告牌旋转系统图片切换效果代码分享
Aug 26 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
Aug 29 Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 Javascript
基于iScroll实现内容滚动效果
Mar 21 Javascript
小程序使用分包的示例代码
Mar 23 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
Jul 22 Javascript
Openlayers绘制地图标注
Sep 28 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 表单数据的获取代码
2009/03/10 PHP
event.srcElement+表格应用
2006/08/29 Javascript
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
js单例模式详解实例
2013/11/21 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
vue 子组件和父组件传值的示例
2020/09/11 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
Python实现远程调用MetaSploit的方法
2014/08/22 Python
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
Python入门学习指南分享
2018/04/11 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
益模软件Java笔试题
2012/03/27 面试题
一道SQL面试题
2012/12/31 面试题
领导班子三严三实心得体会
2014/10/13 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
质检员工作总结2015
2015/04/25 职场文书
会议营销主持词
2015/07/03 职场文书
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技