资讯专栏INFORMATION COLUMN

Javascript ECMA-3 (数组,Date,正则)

alin / 1777人阅读

摘要:第二个由于找了第一个修改正则表达式字符串中应用正则字符串切割字符串替换替换一次字符串查找返回一次查到的下标正则的使用点击按钮后执行函数获取输入框为的输入框获取文字您输入的字符串格式不正确正确您输入的内容为空简介

1. 数组 1.1 创建数组
//一、自变量创建数组
// 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);
1.2 数组元素的访问及修改
// 创建一个数组
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
1.3 数组的方法
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

2. Date的方法 2.1 创建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)
2.2 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);  // 毫秒数

3. 正则表达式 3.1 创建正则表达式
// 创建正则表达式
// 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]/;
3.2 正则的方法
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/

3.3 字符串中应用正则
// 字符串切割
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)); //返回一次查到的下标


3.4 正则的使用
// 点击按钮后 执行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("您输入的内容为空")
    }
}

Javascript BOM简介

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95016.html

相关文章

  • Javascript ECMA-2(类型转换,条件语句,循环,函数)

    摘要:类型装换转为数字类型会试图将字符串转为整型如果失败返回如果前面是空格数字正负号时,当碰到第一个不是数字时停止装换如果不是数字空格直接返回与没有太大区别除了以下几条转为类型转为类型在浏览器控制台中字符类型是黑色的数字是蓝色的其他类型转 1.类型装换 1.1 转为数字类型 // Number console.log(Number(undefined)); //NaN console.l...

    LdhAndroid 评论0 收藏0
  • Javascript核心参考

    摘要:提取字符串的一个子串,的一个变体提取字符串的一个子串返回指定字符串的一份副本都转化为小写返回指定字符串的一份副本都转化为大写返回指定字符串的一份副本,其中前后的空白字符都已删除返回原始的字符串值。 Arguments callee 指代当前正在执行的函数 length 传递给函数的参数个数,以及Arguments对象中数组元素的个数 Array 构造函数 new Array()...

    G9YH 评论0 收藏0
  • JavaScript原生对象及扩展

    摘要:注每个内置对象都是原生对象,一个内置的构造函数是一个内置的对象,也是一个构造函数。从对象返回月份。以毫秒设置对象。删除数组的第一个元素,返回值是删除的元素。对象属性创建该正则对象的构造函数。对象当以非构造函数形式被调用时,等同于。 内置对象与原生对象 内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化阶段就被创建好的对象,是后者的一个子集;而后者包括...

    hsluoyz 评论0 收藏0
  • 【从0到1】分步实现一个出生日期的正则表达式(JavaScript)

    摘要:简言在表单验证中,经常会用正则表达式做出生日期校验。声明本文目的是为了阐述如何编写一个正则表达式的过程。综上所述,正则表达式是强大的,但并不是万能的,因此不要过份地依赖和滥用正则。 简言 在表单验证中,经常会用正则表达式做出生日期校验。本文把出生日期分割成几个部分,分步地介绍了实现一个出生日期校验的完整过程。相信您在理解了本篇的内容后,对如何编写和如何应用正则表达式会有进一步的理解和体...

    shaonbean 评论0 收藏0
  • javascript 正则命名分组

    摘要:早已实现了正则命名分组提案,只是我们很少使用,本文将介绍的正则命名分组。所有这些问题,都可以通过正则命名分组来解决。该名称必须是合法的标识符。 前言 以往我们只是习惯于通过数组下标来访问正则匹配到的分组,但分组达到4、5个时,标识起来就会非常麻烦。V8早已实现了正则命名分组提案,只是我们很少使用,本文将介绍JS的正则命名分组。 以往的做法 假设要使用正则匹配一个日期的年月日,以往我们会...

    Galence 评论0 收藏0

发表评论

0条评论

alin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<