JavaScript截取字符串的Slice、Substring、Substr函数详解和比较


Posted in Javascript onMarch 20, 2014

在JavaScript中,提取子字符串主要是通过 Slice、Substring、Substr 三个方法之一。

// slice 
// 语法: string.slice(start [, stop])
"Good news, everyone!".slice(5,9); 
// 'news'
// substring 
// 语法: string.substring(indexA [, indexB])
"Good news, everyone!".substring(5,9); 
// 'news'
// substr
// 语法: string.substr(start [, length])
"Good news, everyone!".substr(5,4); 
// 'news'

在三个方法之中输入一个  start 的索引参数,和一个可选的 end 索引( 或 length )参数。

但他们在一些重要的方面有所不同:
1.substr()方法从指定位置,提取指定数量的字符。
param: start 开始提取字符的位置索引,length 提取字符的数量长度。
return: 一个新的字符串。 从 start 处开始的 length 个字符。
在不同浏览器有不一致的表现,现代浏览器允许 start 索引参数为负数,来表示从字符串结尾处开始,提取字符的数量。但是在ie8及以下版本浏览器 start索引参数 最小从0开始计算。【 substr 为Web浏览器附加的ECMAScript特性,不建议使用时 start 索引为负值】

var str = "abcdefghij";
console.log("(1): "      + str.substr(1));     // (1): bcdefghij
console.log("(1,2): "    + str.substr(1,2));   // (1,2): bc
console.log("(-3): "     + str.substr(-3));    // (-3): hij
console.log("(-3,2): "   + str.substr(-3,2));  // (-3,2): hi
console.log("(20, 2): "  + str.substr(20,2));  // (20, 2):
console.log("(-20, 2): " + str.substr(-20,2)); // (-20, 2): ab
 
// ie8及以下
console.log("(-3): " + str.substr(-2)); // (-20, 2): hij
console.log("(-3, 2): " + str.substr(-2)); // (-20, 2): ab

2.substring() 方法用于提取字符串 一个index索引至另一个之间的子集, 或是直到字符串的结束。
param: indexA, indexB 两个参数取值范围为一个0 至 字符串长度之间的整数。
return: 返回一个新的字符串, 从小的索引开始 到 大的索引之间,包括小的索引位置字符,不包括大的索引位置字符。
substring 的参数是可反转的,它总是使用小的的参数值作为开始,大的参数值作为结束。 如果参数是小于0或NaN,它被看作是0,如果参数大于字符串的长度,被视为字符串的长度值.
// assumes a print function is defined
var anyString = "Mozilla";
// Displays "Moz"
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));
// Displays "lla"
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));
// Displays "Mozill"
console.log(anyString.substring(0,6));
// Displays "Mozilla"
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));

3.slice 提取字符串的一部分。
param: beginSlice开始提取字符的位置索引,可以为负,如果为负值被视为(sourceLength-beginSlice),sourceLength是字符串的长度,即:从字符串的尾部开始算起的位置endSlice 结束提取的字符的位置索引。如果省略,提取到结束。如果为负值被视为(sourceLength-endSlice)。
return: 返回一个新的字符串,从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
参数都可以为负,如果索引是负的,则从字符串的尾部开始算起。

var str1 = "The morning is upon us.";
console.log(str1.slice(4, -2));   //  morning is upon u
var str = "The morning is upon us.";
str.slice(-3);     // "us."
str.slice(-3, -1); // "us"
str.slice(0, -1);  // "The morning is upon us"
Javascript 相关文章推荐
QQ登录简单实现代码
Mar 09 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
Jun 01 Javascript
js类型检查实现代码
Oct 29 Javascript
jquery文本框中的事件应用以输入邮箱为例
May 06 Javascript
angularJS 中input示例分享
Feb 09 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
JavaScript实现格式化字符串函数String.format
Dec 16 Javascript
5分钟打造简易高效的webpack常用配置
Jul 04 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
Nov 19 Javascript
实现jquery放大镜的两种方法
Feb 22 jQuery
vue quill editor 使用富文本添加上传音频功能
Jan 14 Javascript
canvas实现贪食蛇的实践
Feb 15 Javascript
js拖拽一些常见的思路方法整理
Mar 19 #Javascript
使用jquery实现以post打开新窗口
Mar 19 #Javascript
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 #Javascript
改变隐藏的input中value值的方法
Mar 19 #Javascript
js获取url中的参数且参数为中文时通过js解码
Mar 19 #Javascript
JS 打印界面的CSS居中代码适用所有浏览器
Mar 19 #Javascript
兼容所有浏览器的js复制插件Zero使用介绍
Mar 19 #Javascript
You might like
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
php常用数学函数汇总
2014/11/21 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
PHP xpath()函数讲解
2019/02/11 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
改进:论坛UBB代码自动插入方式
2006/12/22 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
js Date概念详细介绍
2013/11/22 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
实例讲解JS中pop使用方法
2019/01/27 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
利用Python获取操作系统信息实例
2016/09/02 Python
python字典操作实例详解
2017/11/16 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
python中实现字符串翻转的方法
2018/07/11 Python
python用requests实现http请求代码实例
2019/10/31 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
Python中pass的作用与使用教程
2020/11/13 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
计算机系统管理员求职信
2014/06/20 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书