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())