JavaScript_02

2.Date对象的常用方法

推荐学习:js chm手册


//创建日期对象
var myDate = new Date();

// 根据本地时间返回指定日期对象的月份中的第几天(1-31)。
myDate.getDate();

// 根据本地时间返回当天的日期和时间
console.log(Date());

//从Date对象中返回月份(0~11)
console.log(myDate.getMonth()+1);

//根据本地时间返回指定日期对象的年份(四位数年份时返回四位数字)
console.log(myDate.getFullYear());

//从Date对象中返回一周中的某一天(0星期天-6)
console.log(myDate.getDay());

//根据本地时间返回指定日期对象的小时(0-23)
console.log(myDate.getHours());

//根据本地时间返回指定日期对象的分钟(0-59)
console.log(myDate.getMinutes());

//根据本地时间返回指定日期对象的秒数(0-59)
console.log(myDate.getSeconds())

3.Math对象的常用方法

var x = 1.234;

//向上取整,称为'地板函数'
var a = Math.ceil(x); // 2

//向下取整,称为"地板函数"
var b = Math.floor(x); //1

//求两个数的最大值或者最小值
console.log(Math.max(2.5));
console.log(Math.min(2.5));

//random随机数
//min - max 之间的随机数公式: min + Math.random() * (max - min)
var ran = Math.random(); //0~1之间的随机数,不包括1!
console.log(ran);

var c = 100 + Math.random() * 100;//100~200的随机数取法
console.log(c);

//幂运算
console.log(Math.pow(2,3));

//平方根
console.log(Math.sqrt(4));


4.定时器的使用

//定时器的使用,定时器属于window方法,window可以不写
//第二个参数是时间设定,单位是毫秒级
var n = 0;
var timerId1 = null; //设定定时器id为全局变量

//setInterval(function,timeset) 间隔设定时间定时执行指定函数,返回相应id号(进程?/线程?还是其他)!
var timerId1 = setInterval(function () {
    n++;
    console.log(n)
},1000);

//setTimeout(function,time),等待间隔时间执行一次函数体,然后终止
setTimeout(function () {
    clearInterval(timerId1)
},5000);

setInterval应用场景,实时刷新表单

function refreshQuery(){
    console.log("每8秒刷新一次的逻辑")
}

setInterval('refreshQuery()',8000); //单位为毫秒级,第一个参数类似于python中的反射

function endRefreshQuery(id){
    clearInterval(id)
}

setTimeout(endRefreshQuery,10000); //调用函数名的方式结束刷新表单功能
//setTimeout一般用于延迟执行某方法或功能

5.JS中的正则表达式

创建正则表达式的两种方法
1.构造函数创建 new RegExp("检测的文本","修饰符号") i忽略大小写,g全局匹配

var str = 'luffy 2018';
var reg = new RegExp('l',"ig");

2.字面量方式创建

var reg1 = /y/ig; //不区分大小写,全局匹配

正则提供的检索方式

//1.test()检测字符串中是否包含定义字符模式,返回布尔值
console.log(reg1.test(str)); //true

//2.exec() 检索字符串中正则表达式的匹配,匹配到了返回有结果的数据,没有匹配上就返回一个null
console.log(reg1.exec(str)); //常用的方式

console.log(reg1.lastIndex);//(了解)在没有检索的情况下第一次无法匹配到下标,检索之后返回匹配的下标

//3.常用的方法为match方法
var str = 'hello world';
var reg = /o/g;
//使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回
console.log(str.match(reg)); //["o", "o"],

//4.replace 替换:str.replace(被替换的,替换的)
console.log(str.replace("l","*")); //默认匹配一个

//5.search()查询字符换在字符串中出现的位置,下标
console.log(str.search(reg));

//6.split 以匹配的规则进行分割
console.log(str.split(reg));

元字符

1.单个字符和数字

//1. 匹配除换行符以外的所有字符,
var str = 'luffyCity 2018';
var reg = /./g;
console.log(reg.exec(str)); //匹配了一个l

//如果想匹配元字符,可以用转义符号\ \.表示匹配.
str = 'www.baidu.com';
var reg = /www\......\.com/g;
console.log(reg.exec(str));

//2.[] 匹配[]里面的任意一个字符,
var str1 = "hello";
var reg1 = /[a-zA-Z0-9]/g;
console.log(reg1.exec(str1));
console.log(str1.match(reg1));

//3.[^] 所有不在这个范围的字符
var str3 = 'abc123';
var reg3 = /[^a-z][0-9]/g;
console.log(reg3.exec(str3));

//4. \d:匹配数字, \D:匹配非数字
var str4 = 'web2.0';
var reg4 = /\D*\d\.\d/g;
console.log(reg4.exec(str4));

//5. \w:匹配数字、字母、下划线;
// \W:匹配除数字、字母、下划线之外的任意字符;
var str = 'web2.0';
var reg5 = /\w\W/g;
console.log(reg5.exec(str));//

//6. \s:匹配空格  \S:非空白字符
//补充trim() 相当于python中的strip()
var str6 = ' luffy';
var reg6 = /\s\S/g;
console.log(reg6.exec(str6))

//7. ^xx:以什么开头  xx$:以什么结尾
var str7 = "开头luffy结尾";
var reg7 = /^开头\w*结尾$/g;
console.log(reg7.exec(str7));

2.重复的字符

//8. ? :匹配前面的字符0个或者一个;
var str8 = '123xxeedkejd';
var reg8 = /\w?[a-z]?/g;
console.log(reg8.exec(str8))

//9. + :至少匹配前面一个字符一次
var str9 = '123xxeedkejd';
var reg9 = /\w?[a-z]+/g;
console.log(reg9.exec(str9))

// 10 . {n} :匹配连续n次
var str10 = "ed2k\\:filename|xdkfejf.mp4";
var reg10 = /\w{3}/g;
console.log(reg10.exec(str10));

// 11. {min,max} 匹配的个数在min和max之间,包括临界值
var str11 = "ed2k\\:filename|xdkfejf.mp4";
var reg11 = /\w{3,4}/g;
console.log(reg11.exec(str11));

// 12.  | :竖线 或者
var str12 = "www.baidu.com";
var reg12 = /www\.(souhu|baidu|yahu)\.com/g;
console.log(reg12.exec(str12))

//13 . () : 分组
var str13 = "www.baidu.com";
var reg13 = /www\.(souhu)|(baidu)|(yahu)\.com/g;
console.log(reg13.exec(str13));

//在console中显示的0代表匹配的结果,1或者后面的为对应的分组是否匹配上,
//如果没有匹配就为undefined,RegExp.$n获取当前匹配的分组对应的字符串,从1开始
console.log(RegExp.$1);
console.log(RegExp.$2);
console.log(RegExp.$3);

var str = 'helloworld';
var reg = /(hello)(world)/g;
console.log(reg.exec(str));
console.log(RegExp.$1);
//将分组好的匹配 调换顺序
console.log(str.replace(reg,"$2 $1"));  

小练习

//1.检索字符串是否包含字母
var str1 = '1234';
var reg1 = /[^a-zA-Z]/g;

if(reg1.test(str1)){
    console.log("不包含")
}
else{
    console.log("包含")
}

//2. 取出字符串首尾空格
var str2 = "   复仇者联盟3上映啦,超级英雄都洗光光啦     ";
var reg2 = /^\s+/ig;
str2 = str2.replace(reg2,'');
var reg3 = /\s*$/g;
str2 = str2.replace(reg3,'');
console.log(str2);
console.log(str2.trim())
posted @ 2018-05-12 18:38  哈哈大圣  阅读(126)  评论(0编辑  收藏  举报