• JavaScript(数组、Date、正则)


    数组

    创建数组

    // 一、自变量创建数组
    // 1-通过字面量创建一个空数组
    var arr1 = [];
    console.log(arr1)
    console.log(typeof arr1);   // object
    
    // 2-通过字面量创建一个带有元素数组
    var arr2 = [1, 2, 'abc', null, true];
    console.log(arr2);
    
    // 二、通过Array类型创建数组
    // 1-创建空数组
    var arr3 = new Array();
    console.log(arr3);
    
    // 2-创建一个最初可以有五个元素的数组,数组的容量为5
    var arr4 = new Array(5);
    console.log(arr4)
    
    // 3-创建一个带有四个元素的数组
    var arr5 = new Array(1,2,'a','y');
    console.log(arr5);
    

    数组元素的访问及修改

    // 创建一个数组
    var arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    
    // 1-数组下标访问
    // 2-数字的length属性
    // 通过lenth属性增加元素个数
    arr1.length = 13;
    console.log(arr1);
    // 减少
    arr1.length = 6;
    console.log(arr1);
    
    // 3-通过索引增加数据 如果索引不连续 就会出现空的
    arr1[6] = 7;
    console.log(arr1);
    
    // 4-删除数据delete
    // 使用delete删除不会改变数组的长度 删除的元素用undefined补全
    var arr3 = [1, 2, 3, 4, 5]
    delete arr3[2];
    console.log(arr3);
    console.log(arr3[2]);  // undefined
    

    数组的方法

    var arr1 = [1, 2, 3, 4];
    // push 向数组末尾添加元素
    // 可以同时添加一个或多个元素
    arr1.push(6);
    console.log(arr1);
    arr1.push(7,8,9);
    console.log(arr1);
    
    // unshift 向数组开头添加元素 
    // 可以同时添加一个或多个元素
    
    
    // 删除元素 pop() 移除最后一个元素
    arr1.pop()
    console.log(arr1);
    
    // 移除第一个元素
    arr1.shift();
    console.log(arr1);
    
    // 反转数组
    var arr2 = [1, 2, 3];
    arr2.reverse();
    console.log(arr2);
    
    // join(str)
    var arr3 = [1, 2, 3];
    var str3 = arr3.join('*');
    console.log(str3);
    
    
    // indexOf()
    var arr4 = [1, 2, 3, 4, 5, 3];
    console.log(arr4.indexOf(3));  //返回3元素 第一次出现的下标
    // lastIndexof
    
    //  slice(start, end):截取数组
    // 返回一个新数组
    var arr5 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    var arr6 = arr5.slice(2);  // 下标2到末尾
    console.log(arr6);
    var arr7 = arr5.slice(2,6); // 不包含 下标6
    console.log(arr7);
    
    
    // splice(index, count, [item1, item2,...])
    // splice可以进行增加修改或删除元素的操作
    // index:下标  count :元素个数 
    // [item1 ..] 新元素
    // splice直接操作原数组,对原数组有影响
    
    // 删除:只写index 与count
    // 返回:一个删除元素的数组
    var arr8 = [1, 2, 3, 4, 5, 6, 7];
    var arr9 = arr8.splice(2,4);  // 下标2开始删除4个元素  arr8=[1, 2, 7]
    console.log(arr9);   // arr9 = [3, 4, 5, 6]
    console.log(arr8);
    
    // 添加
    // 如果执行添加元素的操作,count的值为0
    var arr10 = [1, 2, 3, 4]
    var arr11 = arr10.splice(2,0, 100,200,300);
    console.log(arr11); // [] 没删除
    console.log(arr10); // [1,2,100,200,300,3,4]
    
    
    // 替换
    var arr12 = [1,2,3,4];
    var arr13 = arr12.splice(2,2,100,200);
    console.log(arr13);  // [3, 4]
    console.log(arr12);  // [1,2,100,200]
    
    // sort:排序 按照ASCII 排序
    var arr14 = [3, 17, 19, 2, 0, 1];
    arr14.sort();
    console.log(arr14);
    
    // 参数传入排序
    function sortNumber(a,b){
        return a - b;
    }
    arr14.sort(sortNumber);
    console.log(arr14);
    
    // 检测数组的方法
    var arr15 = [1, 2, 3, 4];
    console.log(arr15 instanceof Array);  // true
    console.log(arr15.constructor === Array);  // true
    

    Date的方法

    创建Date

    // 创建
    // 1、Date() 函数直接创建时间 返回当前时间
    var date1 = Date();
    console.log(date1); //中国标准时间
    console.log(typeof date1); //string
    
    // 2、Date对象创建
    // 2.1、不带参数
    var date2 = new Date(); // 好处是可以设置时间
    console.log(date2);  // object
    
    
    // 2.2、构造方法传入参数
    // 传入格式
    // 2018-5-10 12:12:12
    // 2018-5-10
    // 2018-05-10 12:12:12
    // 2018-05-10
    // 2015/5/10 12:12:12
    //2018/05/10 12:12:12
    
    var date3 = new Date('2018-5-10 12:12:12');
    console.log(date3);
    var date4 = new Date('2018-05-10 12:12:12');
    console.log(date5);
    var date5 = new Date('2018/05/10 12:12:12');
    console.log(date6);
    
    
    var date6 = new Date('2018-05-09'); // 用 / 也可以
    console.log(date6); // Wed May 09 2018 08:00:00 GMT+0800 (中国标准时间)
    
    // 从00:00:00开始 与上面差8小时  而 / 加0不加0是没有区别的
    var date7 = new Date('2018-5-9');
    console.log(date7); // "Wed May 09 2018 00:00:00 GMT+0800 (中国标准时间)"
    
    // 2.3 传入参数: 格式(年月日时分秒毫秒) 会进位
    var date8 = new Date(2015, 5, 1, 12, 32, 25); //月从0开始数 5代表6月!!!
    console.log(date8);
    
    
    // 2.4 传入一个参数:格式(毫秒)
    var date9 = new Date(2000)
    console.log(date9)
    

    Date的方法

    var date1 = new Date();
    console.log(date1.getFullYear());
    console.log(date1.getMonth());
    console.log(date1.getDate());
    console.log(date1.getDay());  //星期
    console.log(date1.getHours());
    console.log(date1.getMinutes());
    console.log(date1.getSeconds());
    console.log(date1.getMilliseconds());
    // 距离1970-01-01的毫秒数
    console.log(date1.getTime());
    
    // 设置年份 ....星期一般不用设置
    date1.setFullYear(2015);
    // date.setDate();
    console.log(date1);
    
    // 装换成字符串 包含年月日分时秒
    console.log(date1.toLocaleString());
    // 包含年月日
    console.log(date1.toLocaleDateString());
    // 包含分时秒
    console.log(date1.toLocaleTimeString())
    
    // 返回该日期距离1970年 1月1 日 0点的毫秒数
    console.log(Date.parse('2016-10-10'));
    
    // 日期的运算
    var d6 = new Date();
    var d7 = new Date(2016, 10, 11);
    console.log(d6-d7);  // 毫秒数
    

    正则表达式

    创建正则表达式

    // 创建正则表达式
    // 1、对象方法创建
    // new RegExp('正则表达式','模式');
    // g:全局查找 
    // i:不区分大小写
    var r1 = new RegExp('nice');
    var r2 = new RegExp('nice','g')
    var r3 = new RegExp('nice','i')
    var r4 = new RegExp('nice','gi')
    
    // 2、字面量创建
    var r5 = /nice/;
    var r6 = /nice/gi;
    
    // 
    var r7 = /[a-z]/;
    

    正则的方法

    var str1 = 'today is very good good Good'
            
    var r1 = /good/gi;
    // 1、test():查找字符串中是否有符合要求的字符串
    // 返回boolean
    var result = r1.test(str1);
    console.log(result) // true
    
    //2、exce():查找字符串中是否有符合要求的字符串
    // 返回值类型:数组或null
    // 返回数组 代表可以找到
    // 返回null 代表查找结束或没有找打
    
    //当第一次执行exec时,从字符串开头开始查找,如果找到,返回匹配到的
    //字符串和下标,当再一次执行时候,继续向下查找,返回匹配到下一个字符串
    // 如果返回null 代表找不到或查找结束,然后下次执行从头查找
    
    // exec:会记录已经查找过的下标
    // 当text与exec同时使用,test检验字符串时,如果能够符合要求
    // 会记录找到的下标。
    var resu1 = r1.exec(str1);
    console.log(resu1);   // good  index 19 第二个good 由于test找了第一个good 
    var resu2 = r1.exec(str1);
    console.log(resu2); // Good index 24
    var resu3 = r1.exec(str1);
    console.log(resu3); // null
    var resu4 = r1.exec(str1); 
    console.log(resu4); // good index 14
    
    
    // 3、compile():修改正则表达式
    r1.compile('nice');  /* r1 = /nice/  */
    console.log(r1)  //  /nice/
    

    字符串中应用正则

    // 字符串切割
    str1='a b c   d  f'
    console.log(str1.split(/ +/))
    
    // 字符串替换
    var str2 = 'nice good nice good'
    console.log(str2.replace('nice', 'bad')) // 替换一次
    console.log(str2.replace(/nice/g, 'bad'));
    
    // 字符串查找
    var str3 = 'nice good nice good nice';
    console.log(str3.search(/Good/i)); //返回一次查到的下标
    

    正则的使用

    // 点击按钮后 执行func函数
    function func () {
        //获取输入框
        var i1 = document.getElementById("in1");  // id为in1的input输入框
        //获取文字
        var str1 = i1.value;
        IsString(str1)
        
    }
    
    function IsString (str) {
        if(str.length!=0){
            reg = /^[a-zA-Z0-9_]+$/;
            if(!reg.test(str)){
                alert('您输入的字符串格式不正确')
            }else{
                alert('正确')
            }
        }else{
            alert('您输入的内容为空')
        }
    }
    
  • 相关阅读:
    如何快速正确的安装 Ruby, Rails 运行环境
    五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
    CocoaPods安装和使用教程
    ARC下需要注意的内存管理
    iOS 遍历某一对象的属性和方法
    使用命令行工具运行Xcode 7 UI Tests
    手势知多少
    Customizing UIWebView requests with NSURLProtocol
    iOS: JS和Native交互的两种方法
    NSURLProtocol
  • 原文地址:https://www.cnblogs.com/qiuxirufeng/p/10408636.html
Copyright © 2020-2023  润新知