zoukankan      html  css  js  c++  java
  • javascript的slice(),splice(),split(),substring(),substr()

    例子摘抄于http://www.w3school.com.cn/jsref/jsref_obj_array.asp

    1.slice();

    Array和String对象都有

    在Array中  slice(i,[j])

    i为开始截取的索引值,负数代表从末尾算起的索引值,-1为倒数第一个元素
    j为结束的索引值,缺省时则获取从i到末尾的所有元素

    参数返回:
    返回索引值从i到j的数组,原数组不改变

    在String中 slice(i,[j])

    参数说明:
    i为开始截取的索引值,负数代表从末尾算起的索引值,-1为倒数第一个字符
    j为结束的索引值,缺省时则获取从i到末尾的所有字符

    实例

    例子 1

    在本例中,我们将创建一个新数组,然后显示从其中选取的元素:

    <script type="text/javascript">
    
    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    
    document.write(arr + "<br />")
    document.write(arr.slice(1) + "<br />")
    document.write(arr)
    
    </script>
    

      

    输出:

    George,John,Thomas
    John,Thomas
    George,John,Thomas
    

      

    例子 2

    在本例中,我们将创建一个新数组,然后显示从其中选取的元素:

    <script type="text/javascript">
    
    var arr = new Array(6)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    arr[3] = "James"
    arr[4] = "Adrew"
    arr[5] = "Martin"
    
    document.write(arr + "<br />")
    document.write(arr.slice(2,4) + "<br />")
    document.write(arr)
    
    </script>
    

      

    输出:

    George,John,Thomas,James,Adrew,Martin
    Thomas,James
    George,John,Thomas,James,Adrew,Martin
    

      

    2.splice()

    存在Array中     方法向/从数组中添加/删除项目,然后返回被删除的项目。 该方法会改变原始数组

    splice(index,howmany,item1,itemx )

    index : 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

    howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。

    item1...itemX : 可选。向数组添加的新项目。

    返回值  Array  包含被删除项目的新数组,如果有的话。

    实例

    例子 1

    在本例中,我们将创建一个新数组,并向其添加一个元素:

    <script type="text/javascript">
    
    var arr = new Array(6)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    arr[3] = "James"
    arr[4] = "Adrew"
    arr[5] = "Martin"
    
    document.write(arr + "<br />")
    arr.splice(2,0,"William")
    document.write(arr + "<br />")
    
    </script>
    

      

    输出:

    George,John,Thomas,James,Adrew,Martin
    George,John,William,Thomas,James,Adrew,Martin
    

      

    例子 2

    在本例中我们将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素:

    <script type="text/javascript">
    
    var arr = new Array(6)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    arr[3] = "James"
    arr[4] = "Adrew"
    arr[5] = "Martin"
    
    document.write(arr + "<br />")
    arr.splice(2,1,"William")
    document.write(arr)
    
    </script>
    

      

    输出:

    George,John,Thomas,James,Adrew,Martin
    George,John,William,James,Adrew,Martin
    

      

    例子 3

    在本例中我们将删除从 index 2 ("Thomas") 开始的三个元素,并添加一个新元素 ("William") 来替代被删除的元素:

    <script type="text/javascript">
    
    var arr = new Array(6)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    arr[3] = "James"
    arr[4] = "Adrew"
    arr[5] = "Martin"
    
    document.write(arr + "<br />")
    arr.splice(2,3,"William")
    document.write(arr)
    
    </script>
    

      

    输出:

    George,John,Thomas,James,Adrew,Martin
    George,John,William,Martin
    

      

    3.split()

    在String中 split(separator,howmany)

    separator:必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

    howmany: 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

    返回值

    一个字符串数组。该数组是通过在separator指定的边界处将字符串StringObject分割成子串创建的。返回的数组的字符串不包含separator自身

    但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)

    与jion()函数相反效果

    4.substring()

    在String中  substring(start,stop)

    start:表示子字符串的开始位置,

    stop:表示结束结果。

    注意:第二个参数应该大于第一个参数。如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置。 

    实例

    例子 1

    在本例中,我们将使用 substring() 从字符串中提取一些字符:

    <script type="text/javascript">
    
    var str="Hello world!"
    document.write(str.substring(3))
    
    </script>
    

      

    输出:

    lo world!
    

      

     

    例子 2

    在本例中,我们将使用 substring() 从字符串中提取一些字符:

    <script type="text/javascript">
    
    var str="Hello world!"
    document.write(str.substring(3,7))
    
    </script>
    

      

    输出:

    lo w
    

      

    5.substr()

    在String中,substr(start,length);

    start:子字符串的开始位置,

    length:子字符串的长度。

    实例

    例子 1

    在本例中,我们将使用 substr() 从字符串中提取一些字符:

    <script type="text/javascript">
    
    var str="Hello world!"
    document.write(str.substr(3))
    
    </script>
    

      

    输出:

    lo world!
    

      

    例子 2

    在本例中,我们将使用 substr() 从字符串中提取一些字符:

    <script type="text/javascript">
    
    var str="Hello world!"
    document.write(str.substr(3,7))
    
    </script>
    

      

    输出:

    lo worl
    

    6.replace() 

    定义和用法

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

    语法

    stringObject.replace(regexp/substr,replacement)
    参数描述
    regexp/substr

    必需。规定子字符串或要替换的模式的 RegExp 对象。

    请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

    replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

    返回值

    一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

    说明

    字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

    replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

    字符替换文本
    $1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
    $& 与 regexp 相匹配的子串。
    $` 位于匹配子串左侧的文本。
    $' 位于匹配子串右侧的文本。
    $$ 直接量符号。

    注意:ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。

    实例

    例子 1

    在本例中,我们将使用 "W3School" 替换字符串中的 "Microsoft":

    <script type="text/javascript">
    
    var str="Visit Microsoft!"
    document.write(str.replace(/Microsoft/, "W3School"))
    
    </script>
    

      

    输出:

    Visit W3School!
    

      

    例子 2

    在本例中,我们将执行一次全局替换,每当 "Microsoft" 被找到,它就被替换为 "W3School":

    <script type="text/javascript">
    
    var str="Welcome to Microsoft! "
    str=str + "We are proud to announce that Microsoft has "
    str=str + "one of the largest Web Developers sites in the world."
    
    document.write(str.replace(/Microsoft/g, "W3School"))
    
    </script>
    

      

    输出:

    Welcome to W3School! We are proud to announce that W3School
    has one of the largest Web Developers sites in the world.
    

      

    例子 3

    您可以使用本例提供的代码来确保匹配字符串大写字符的正确:

    text = "javascript Tutorial";
    text.replace(/javascript/i, "JavaScript");
    

      

    例子 4

    在本例中,我们将把 "Doe, John" 转换为 "John Doe" 的形式:

    name = "Doe, John";
    name.replace(/(w+)s*, s*(w+)/, "$2 $1");
    

      

    例子 5

    在本例中,我们将把所有的花引号替换为直引号:

    name = '"a", "b"';
    name.replace(/"([^"]*)"/g, "'$1'");
    

      

    例子 6

    在本例中,我们将把字符串中所有单词的首字母都转换为大写:

    name = 'aaa bbb ccc';
    uw=name.replace(/w+/g, function(word){
      return word.substring(0,1).toUpperCase()+word.substring(1);}
      );
    

      

  • 相关阅读:
    [React] Improve developer experience for accessing context with a custom React hook
    [CSS] Create a self-centering, full-width stripe with CSS Grid
    android之使用mvn构建创造项目步骤
    Android读取Excel文件
    Android之RAS加密算法测试
    android 内存溢出oom错误的一些小见解
    Android之在应用程序内部关注某人的微信
    Android之使用picker打开相应的app
    MAC之查看日历
    MAC之tar解压与压缩打包命令
  • 原文地址:https://www.cnblogs.com/wohenxion/p/4692660.html
Copyright © 2011-2022 走看看