在js中字符截取函数有常用的三个slice()、substring()、substr()了,下面我来给大家介绍slice()、substring()、substr()函数在字符截取时的一些用法与区别吧。 取字符串的三个函数:slice(start,[end]),substring(start,[end])和substr(start,[length]) 相关属性: slice() 第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度为第二个参数与第一个参数之间的差;若参数值为负数,则将该值加上字符串长度后转为正值;若第一个参数等于大于第二个参数,则返回空字符串...

1
<code class="hljs"> </code>

在js中字符截取函数有常用的三个slice()、substring()、substr()了,下面我来给大家介绍slice()、substring()、substr()函数在字符截取时的一些用法与区别吧。

取字符串的三个函数:slice(start,[end]),substring(start,[end])和substr(start,[length]) 相关属性:

slice() 第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度为第二个参数与第一个参数之间的差;若参数值为负数,则将该值加上字符串长度后转为正值;若第一个参数等于大于第二个参数,则返回空字符串.

substring() 第一个参数代表开始位置,第二个参数代表结束位置的下一个位置;若参数值为负数,则将该值转为0;两个参数中,取较小值作为开始位置,截取出来的字符串的长度为较大值与较小值之间的差.

substr() 第一个参数代表开始位置,第二个参数代表截取的长度

PS:字符串都从0开始计起

例子:

<script type="text/javascript">       var stmp = "rcinn.cn";       //使用一个参数       alert(stmp.slice(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"       alert(stmp.substring(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"

//使用两个参数       alert(stmp.slice(1,5))//从第2个字符开始,到第5个字符;返回"cinn"       alert(stmp.substring(1,5));//从第2个字符开始,到第5个字符;返回"cinn"

//如果只用一个参数并且为0的话,那么返回整个参数       alert(stmp.slice(0));//返回整个字符串       alert(stmp.substring(0));//返回整个字符串

//返回第一个字符

alert(stmp.slice(0,1));//返回"r"       alert(stmp.substring(0,1));//返回"r"

//在上面的例子中我们可以看出slice()和substring()的用法是相同的       //返回的值也是一样的,但当参数为负数时,他们的返回值却不一样,看下面的例子       alert(stmp.slice(2,-5));//返回"i"       alert(stmp.substring(2,-5));//返回"rc"       //从上面两个例子可以看出slice(2,-5)实际上是slice(2,3)       //负5加上字符串长度8转换成正3(若第一位数字等于或大于第二位数字,则返回空字符串);       //而substring(2,-5)实际上是substring(2,0),负数转换为0,substring总是把较小的数作为起始位置。

alert(stmp.substring(1,5))//从第2个字符开始,到第5个字符;返回"cinn"       alert(stmp.substr(1,5));//从第2个字符开始,截取5个字符;返回"cinn."

</script>

substr 和 substring方法的区别

<script type="text/javascript">  var str = "0123456789";//  alert(str.substring(0));//------------"0123456789"  alert(str.substring(5));//------------"56789"  alert(str.substring(10));//-----------""  alert(str.substring(12));//-----------""  alert(str.substring(-5));//-----------"0123456789"  alert(str.substring(-10));//----------"0123456789"  alert(str.substring(-12));//----------"0123456789"  alert(str.substring(0,5));//----------"01234"  alert(str.substring(0,10));//---------"0123456789"  alert(str.substring(0,12));//---------"0123456789"  alert(str.substring(2,0));//----------"01"  alert(str.substring(2,2));//----------""  alert(str.substring(2,5));//----------"234"  alert(str.substring(2,12));//---------"23456789"  alert(str.substring(2,-2));//---------"01"  alert(str.substring(-1,5));//---------"01234"  alert(str.substring(-1,-5));//--------""  alert(str.substr(0));//---------------"0123456789"  alert(str.substr(5));//---------------"56789"  alert(str.substr(10));//--------------""  alert(str.substr(12));//--------------""  alert(str.substr(-5));//--------------"0123456789"  alert(str.substr(-10));//-------------"0123456789"  alert(str.substr(-12));//-------------"0123456789"  alert(str.substr(0,5));//-------------"01234"  alert(str.substr(0,10));//------------"0123456789"  alert(str.substr(0,12));//------------"0123456789"  alert(str.substr(2,0));//-------------""  alert(str.substr(2,2));//-------------"23"  alert(str.substr(2,5));//-------------"23456"  alert(str.substr(2,12));//------------"23456789"  alert(str.substr(2,-2));//------------""  alert(str.substr(-1,5));//------------"01234"  alert(str.substr(-1,-5));//-----------""  </script>

函数:split()  功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子:

str=”jpg|bmp|gif|ico|png”; arr=theString.split(”|”); //arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组

函数:John()  功能:使用您选择的分隔符将一个数组合并为一个字符串 例子:

var delimitedString=myArray.join(delimiter); var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”); var portableList=myList.join(”|”); //结果是jpg|bmp|gif|ico|png

函数:indexOf() 功能:返回字符串中匹配子串的第一个字符的下标

var myString=”JavaScript”; var w=myString.indexOf(”v”);w will be 2 var x=myString.indexOf(”S”);x will be 4 var y=myString.indexOf(”Script”);y will also be 4

var z=myString.indexOf(”key”);z will be -1

在网上看到另一种非常简单的方法,代码如下:

  function func(s, n) {     return s.replace(/([^x00-xff])/g, “$1a”).slice(0, n).replace(/([^x00-xff])a/g, “$1″);   }

这个方法非常巧妙,而且基本上是正确的。说“基本上”是因为它在取“123汉字测试”左边长度为 6 的子串时,它返回的是“123汉字”,而不是“123汉”。当然,这也并不一定就是问题,某些情况下需求可能就是这样。这个方法还可以再改进一下,如下:

 function func(s, n) {     return s.slice(0, n).replace(/([^x00-xff])/g, “$1a”).slice(0, n).replace(/([^x00-xff])a/g, “$1″);

slice()、substring()、substr()的区别用法的更多相关文章

  1. slice,substring,substr的区别

    1.都为正整数//例子数据 var arr = [1,2,3,4,5,6,7], var str = "helloworld!"; //注意这里有个!号也算一位若有空格,空格也算一 ...

  2. JS字符串截取函数slice(),substring(),substr()的区别

    在JS中,slice().substring().substr()都有截取字符串的作用,那他们有哪些用法上的区别呢?如果你也有疑惑,这篇文章或许能够帮助到你. 一.substring() substr ...

  3. 字符串截取slice() substring() substr()的区别?

    获取子字符串 slice()        substr()    substring() 不会修改字符串本身,他们只是返回一个基本类型的字符串值 var str='abcdefghijklmn'; ...

  4. 字符串截取函数slice, substring, substr

    在日常项目需求中,常常会遇到需要截取字符串操作的工作,而ECMAScript为我们提供了原生的截取字符串的函数,而且提供了三个:slice, substring, substr.我们怎么判断在什么时候 ...

  5. 关于js的string的3个函数slice,substring,substr对比

    slice,substring,substr三个函数都是截取字符串,但是对参数的处理有区别 参数处理相似的两个函数式slice和substring slice(start,end)和substring ...

  6. substring、slice、substr的区别

    首先定义一个变量便于下面测试:var str = "xx351223441";   substring: str.substring(form,to):从字符串里截取下标为form ...

  7. 怎样理解String的slice(), subString(), substr()三个方法

    String.prototype.slice() 是js字符串的切片工具方法, 用于对字符串做'裁剪'操作, 不改变原字符串. 'helloworld'.slice(0,5); // 'hello'; ...

  8. javascript篇-slice(),splice(),split(),substring(),substr()的用法以及区别

    1.slice(),从已经有的数组中返回选定的元素, 使用范围是:Array,string 语法:obj.slice(start,end) 参数: start: 必需.规定从数组(字符串)的哪个ind ...

  9. JS中数组和字符串具有的方法,以及substring,substr和slice的用法与区别

     String 对象属性 属性 描述 constructor 对创建该对象的函数的引用 length 字符串的长度 prototype 允许您向对象添加属性和方法 String 对象方法 方法 描述 ...

随机推荐

  1. java的reflection和introspector

    JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制 ...

  2. spring学习六

    1: @Valid 注解    @NotNull(message="名字不能为空") private String userName; @Max(value=120,message ...

  3. ES6相关实用特性

    本文总结ECMAScript6相关实用特性 目录 let和const 箭头函数 class 对象字段 模板字符串 解构赋值 函数参数扩展 迭代器for...of 模块加载 map和weakmap se ...

  4. [vijos1246]文科生的悲哀(二) 动态规划

    背景 化学不及格的Matrix67无奈选择了文科.他必须硬着头皮艰难地进行着文科的学习. 描述 这学期的政治.历史和地理课本各有n章.每一科的教学必须按章节从前往后依次进行.若干章政治.若干章历史和若 ...

  5. sublime3 There are no packages available for installation

    我的是网上下载的绿色版 1.找到sublime\Data\Packages  删除Packages control相关的文件夹和文件 下载https://packagecontrol.io/Packa ...

  6. 使用网络用户命令行工具的/passwordreq:yes

    提示:"新建域时,本地administrator帐户将成为域administrator账户.无法新建域,因为本地administrator账户密码不符合要求.目前,本地administrat ...

  7. JS继承方式详解

    js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念.所以,要想实现 ...

  8. HDU 6397(2018多校第8场1001) Character Encoding 容斥

    听了杜教的直播后知道了怎么做,有两种方法,一种构造函数(现在太菜了,听不懂,以后再补),一种容斥原理. 知识补充1:若x1,x2,.....xn均大于等于0,则x1+x2+...+xn=k的方案数是C ...

  9. [转]怎么学习前端,尤其是 JavaScript 这块

    1. 先看看 w3school ,了解什么是 js,再找几本写 js 小效果的书看看,知道 js 干什么: 2. 然后再去通读 API,推荐 <Javascript权威指南>,第四版吧,第 ...

  10. 25-Fibonacci(矩阵快速幂)

    http://poj.org/problem?id=3070     Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submiss ...