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

在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"

时间: 2024-08-01 23:04:29

JavaScript截取字符串的Slice、Substring、Substr函数详解和比较_javascript技巧的相关文章

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

 这篇文章主要介绍了JavaScript截取字符串的Slice.Substring.Substr函数详解和比较,需要的朋友可以参考下 在JavaScript中,提取子字符串主要是通过 Slice.Substring.Substr 三个方法之一.    代码如下:// slice  // 语法: string.slice(start [, stop]) "Good news, everyone!".slice(5,9);  // 'news'   // substring  // 语法:

JS截取字符串:slice(),substring()和substr()

文章简介:JS提供三个截取字符串的方法,分别是:slice(),substring()和substr(). JS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数: 一个参数时,三个方法都表示从参数值所示的开始位置一直截取到字符串末尾. 两个参数时, slice(),第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度为第二个参数与第一个参数之间的差;若参数值为负数,则将该值加上字符串长度后转为正

JavaScript 继承详解 第一篇_javascript技巧

面向对象与基于对象 几乎每个开发人员都有面向对象语言(比如C++.C#.Java)的开发经验. 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例. 类定义了一类事物公共的行为和方法:而实例则是类的一个具体实现. 我们还知道,面向对象编程有三个重要的概念 - 封装.继承和多态. 但是在JavaScript的世界中,所有的这一切特性似乎都不存在. 因为JavaScript本身不是面向对象的语言,而是基于对象的语言. 这里面就有一些有趣的特性,比如JavaScript中所有事物都是对象, 包

Javascript中call,apply,bind方法的详解与总结_javascript技巧

以下内容会分为如下小节: 1.call/apply/bind方法的来源 2.Function.prototype.call() 3.Function.prototype.apply() 3.1:找出数组中的最大数 3.2:将数组的空元素变为undefined 3.3:转换类似数组的对象 4.Function.prototype.bind() 5.绑定回调函数的对象 6.call,apply,bind方法的联系和区别 1.call/apply/bind方法的来源 首先,在使用call,apply,

JavaScript 深层克隆对象详解及实例_javascript技巧

 JavaScript 深层克隆对象 今天做项目,有个需求需要用到深层克隆对象,并且要求在原型链上编程 于是心血来潮索性来复习一下这个知识点,在网上找了相应的知识, 克隆对象,这名词看着高大上,其实也没什么,便是拷贝一个长的一模一样的对象 也许有初学的小伙伴在想,那还不简单么,so easy var obj1 = {name: 'payen'}; var obj2 = obj1; 这可并不是克隆对象,obj1和obj2根本就是同一个对象, 他俩指向同一个内存地址空间,拿到了同样的一个小房子 这是

Javasscript截取字符串substring与substr函数详解

一.substring substring需要至少需要一个参数,第一个参数为起始位置,第二个参数可选,为结束位置. 只有一个参数  代码如下 复制代码 <meta charset="UTF-8" /> <script type='text/javascript'> /**  * substring函数使用DEMO  */ var str = '欢迎各位童鞋到琼台博客做客'; var sub = str.substring(3); alert(sub); // o

JavaScript实现字符串与日期的互相转换及日期的格式化_javascript技巧

字符串转日期.日期转字符串 // 2014-02-25 /** * 字符串转时间(yyyy-MM-dd HH:mm:ss) * result (分钟) */ stringToDate : function(fDate){ var fullDate = fDate.split("-"); return new Date(fullDate[0], fullDate[1]-1, fullDate[2], 0, 0, 0); } /** * 格式化日期 * @param date 日期 * @

javascript字母大小写转换的4个函数详解_javascript技巧

js中实现字母大小写转换主要用到了四个js函数: 1.toLocaleUpperCase2.toUpperCase3.toLocaleLowerCase4.toLowerCase 下面就这四个实现大小写转换的js函数逐一做简单的分析. 1.toLocaleUpperCase 将字符串中所有的字母字符都将被转换为大写的,同时适应宿主环境的当前区域设置. 2.toUpperCase 将字符串中的所有字母都被转化为大写字母. 3.toLocaleLowerCase 将字符串所有的字母字符都被转换为小写

javascript去除字符串中所有标点符号和提取纯文本的正则_javascript技巧

用正则表达式除字符串中所有标点符号 复制代码 代码如下: <script language="javascript">   var str="jfkldsjalk,.23@#!$$k~!  @#$%^&*()(_+-=|\{}[]';:,./<>??gg  g~```gf";   str=str.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\