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 相关文章推荐
使用jquery菜单插件HoverTree仿京东无限级菜单
Dec 18 Javascript
jquery实现动静态条形统计图
Aug 17 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
Nov 26 Javascript
详解Bootstrap创建表单的三种格式(一)
Jan 04 Javascript
AngularJS基础 ng-href 指令用法
Aug 01 Javascript
微信小程序 form组件详解及简单实例
Jan 10 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 jQuery
javascript 易错知识点实例小结
Apr 25 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 Javascript
vue中使用echarts的示例
Jan 03 Vue.js
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 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
用jquery ajax获取网站Alexa排名的代码
2009/12/12 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
vue从一个页面跳转到另一个页面并携带参数的解决方法
2019/08/12 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
pymysql的简单封装代码实例
2020/01/08 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
国际贸易专业个人求职信格式
2014/02/02 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
Nginx如何配置根据路径转发详解
2022/07/23 Servers