在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. 使用HibernateTemplate手写源生SQL的【增删改查】 操作

    使用 HibernateTemplate 进行持久化操作 执行的时候不报错,但数据库的持久化操作没有一点作用,问了好多人,说没有声明事务和提交事务, 用的是别人搭的的架构,事务已经有了,自动提交事务的 ...

  2. get方法传递中文数据的时候如何进行转码

    首先,如果是在js端的代码,用window.href进行请求时,需要进行转码 前台jsp中: var param = document.getElementById('param').value;pa ...

  3. Django基础(五)

    Django admin 自带的验证: from django.contrib.auth.decorators import login_required from django.contrib.au ...

  4. Java-API:java.util.UUID

    ylbtech-Java-API:java.util.UUID 1.返回顶部   2.返回顶部   3.返回顶部   4. 百科返回顶部   5.返回顶部 0. https://docs.oracle ...

  5. C Primer Plus学习笔记(四)- 运算符、表达式和语句

    基本运算符 赋值运算符:= 在C语言中,=不是“相等”,而是赋值运算符,把左边的值赋给右边的变量 a = 2018; //把值2018赋给变量a 赋值表达式语句的目的是把值储存到内存位置上,用于储存值 ...

  6. create-react-app脚手架中配置sass

    本文介绍如何在react中配置sass 首先将你的文件名称改成scss结尾的文件 然后安装依赖 cnpm install sass-loader node-sass --save-dev 找到node ...

  7. oracle sql 函数

    (7)查询日期之间的数据 例如查询student表中出生日期(birthday)在’2016-01-01’ 和’2017-01-01’之间的数据: select * from student wher ...

  8. rsync 简单使用 非默认ssh端口 分别从远程获取及推送本地的文件到远程

    rsync: did not see server greetingrsync error: error starting client-server protocol (code 5) at mai ...

  9. linux下mysql 最新版安装图解教程

    1.查看当前安装的linux版本 命令:lsb_release -a 如下图所示 通过上图中的数据可以看出安装的版本为RedHat5.4,所以我们需要下载RedHat5.4对应的mysql安装包 2. ...

  10. struts2学习笔记(3)struts.xml的一些常用设置

    在开发中通常需要用到多个配置文件,可以通过在web.xml中添加以下代码: <include file="login.xml"></include> 将sr ...