在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程序开发中的简单内存分析

    首先说明内存总体分为了4个部分, 包括 1.stack segment (栈区存储基本数据类型的局部变量,对象的引用名) 2.heap segment(堆区,一般用于存储java中new 出来的对象) ...

  2. 2015.1.3 DataGridView中嵌入其它控件

    1.按正常方法绑定待嵌入列的值,先赋值为空也行. 2.添加combbox到datagrivdview中 dvaw.Controls.Add(cb_dir); 3.添加DataGridView Mous ...

  3. python_class21

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ @version: 3.5 @author: morgana @lic ...

  4. 基于Flask框架的Python web程序的开发实战 <一> 环境搭建

    最近在看<Flask Web开发基于Python的Web应用开发实战>Miguel Grinberg著.安道译 这本书,一步步跟着学习Flask框架的应用,这里做一下笔记 电脑只安装一个P ...

  5. python爬虫实战(1)--爬取糗事百科

    这里利用正则表达式进行匹配,糗事百科是不需要登录的,所以也没必要用到Cookie,另外糗事百科有的段子是附图的,我们把图抓下来图片不便于显示,那么我们就尝试过滤掉有图的段子. 本篇目标 1.抓取糗事百 ...

  6. TCP UDP HTTP 的关系和区别

    TCP UDP HTTP 三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层.网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传 ...

  7. GBK、GB2312和UTF-8编码区分

    GBK包含全部中文字符, GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1. 至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对 ...

  8. 解决iText+freemark导出pdf不支持base64的解决办法

    工具类: package test; import java.io.IOException ; import org.w3c.dom.Element ; import org.xhtmlrendere ...

  9. 关联映射、关联查询【重点掌握一条SQL语句的那种方法】

    1 什么叫关联映射 通过数据库对象之间的关联关系(一对一.一对多.多对多),反映到实体对象上之间的引用. 举例 用户实体类(User):user_id user_name user_token 笔记本 ...

  10. Tensorflow练习

    # coding: utf-8 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # ...