zoukankan      html  css  js  c++  java
  • slice,substr,substring的区别

    <!DOCTYPE html>
    <!--
    To change this license header, choose License Headers in Project Properties.
    To change this template file, choose Tools | Templates
    and open the template in the editor.
    -->
    <html>
        <head>
            <title>TODO supply a title</title>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <script>
                var str="123456";
                console.log(str.slice(0));
                console.log(str.slice(0,4));
                console.log(str.slice(0,-1));
                console.log(str.slice(-1));
                console.log(str.slice(-5));
                
                //123456|1234|12345|6|23456
                
                console.log(str.substr(0));
                console.log(str.substr(0,4));
                console.log(str.substr(0,-1));
                console.log(str.substr(-1));
                console.log(str.substr(-5));
                
                //123456|1234|空字符串|6|23456
                
                console.log(str.substring(0));
                console.log(str.substring(0,4));
                console.log(str.substring(4,0))
                console.log(str.substring(0,-1));
                console.log(str.substring(-1));
                //123456|1234|1234|空字符串|123456
                /**
                 * 总结三者的区别:
                 * 1、substring(start,end)和slice(start,end)都表示提取从start下标开始(包括该下标上的字符)到end下标结束(不包括该下标上的字符)之间的内容,如果不包含end参数则表示提取从start到结尾的全部字符
                 * 2、substring不支持负数参数(如果为负数则转换为0来处理),slice支持负数参数(如果参数为负数则表示从最右边算起,例1第一行中的0为-1,1为-2);substring如果start>end则互相交换,而slice则不支持交换
                 * 3、substr其实是不是作为ECMAScript标准发布的,因此各种浏览器之间不是兼容的,但是既然提出来了还是讲一下substr(start,length)函数可以看出其实和上面两种函数的差别,即第二个参数代表的是截取的长度,不再是作为结尾下标来处理,所以该函数表示从开始下标start开始,向右截取length个长度的字符。按照w3c上来讲start是支持负数的,即表示从字符传的结尾开始计算,但是因为该函数并不是标准里的所以各浏览器实现不一,所以还是不建议用负数了。length为负数则不会截取任何字符,因为长度不可能为负的
                 */
         
            </script>
        </head>
        <body>
            <div>TODO write content</div>
           
            
        </body>
    </html>
  • 相关阅读:
    在Java中使用 break/continue 语句来控制多重嵌套循环的跳转
    Android系统架构基本模式解析
    添加蓝牙通讯功能
    wince串口蓝牙
    Android各层推荐开发书籍及参考资料
    CDEFINES的用法
    蓝牙地址的规则
    WinCE中sources文件中targetlibs与sourcelibs的作用与区别
    Java初学者不得不知的概念,JDK,JRE,JVM的区别?
    WINCE的内存配置config.bib文件的解析
  • 原文地址:https://www.cnblogs.com/wujindong/p/7069211.html
Copyright © 2011-2022 走看看