JS笔记1.5--Date对象,Math对象,包装类和正则

1.Date对象

<script type="text/javascript">
	/*
	* Date
	* 
	*/
	var d1 = new Date();
	console.log(d1);//Sun Mar 03 2019 10:37:24 GMT+0800 默认执行当前代码的执行时间
	var d2 = new Date("12/2/2018 12:12:12"); //创建指定时间对象 格式/日/年 时:分:秒 
	console.log(d2); // Sun Dec 02 2018 12:12:12 GMT+0800
	
	/*
	*getDate()方法:获取当前Date对象是本月的第几日,返回值是(1~31)中的一个数字
	*/
	console.log(d1.getDate());// 3
	
	/*
	*getDay()方法:获取当前Date对象是本周的周几,返回(0~6)中的一个数字,其中0表示周日
	* 1~6 表示周一到周六
	*/ 
	console.log(d1.getDay());// 0(周日)
	
	/*
	*getMonth()方法:获取当前时间的月份,返回(0~11)中的一个数字
	* 0 表示1月,1 表示2月,11表示12月
	*/ 
	console.log(d2.getMonth());//11(12月)
	
	/*
	*getFullYear()方法:获取当前时间对象的年份
	*/ 
	console.log(d1.getFullYear());//2019
	
	/*
	*getTime():获取当前时间对象的时间戳
	* -- 从格林威治标准时间1970年1月1日0点0分0秒,到当前时间所经历的毫秒数
	*/ 
	console.log(d1.getTime());//1551581724520

        /*
	* Date.now() 获取当前时间的时间戳
	* 利用时间戳来测试代码的执行性能
	*/ 
        var startTime = Date.now();
        for(var i = 0 ; i < 10000 ; i++)
	{
		console.log(i);
	}
	var endTime = Date.now();
	console.log(endTime - startTime); // 执行时间是 1785
</script>

2.Math对象

<script type="text/javascript">
	/*
	* Math
        Math.floor()    向下取整
        Math.ceil()     向上取整
        Math.round()    四舍五入
        Math.abs()      绝对值
        Math.random()   生成随机数
	*   pow(x,y) 返回x的y次幂
	*   sqrt(x) 对x进行开方运算
	* 1.生成从0到x的随机数,并取整
	*    Math.round(Math.random()*x)
	* 2.生成从x到y的随机数,并取整
	*    Math.round(Math.random()*(y-x)) + x
	*/
        for(var i = 0 ; i < 10 ; i ++)
	{
		console.log(Math.round(Math.random()*5)+1);
	}
</script>

3. 包装类

<script type="text/javascript">
	/*
	* JS中有三个包装类 通过这三个包装类可以将基本数据类型的值转换为对象
	* String 将基本数据类型转换为字符串对象
	* Boolean 将基本数据类型转换为布尔对象
	* Number 将基本数据类型转换为数值对象
	* 但是,在实际中不会使用基本数据类型的对象
	* 方法和属性只能添加给对象,不能添加给基本数据类型
	* 但是,当我们对一些基本数据类型的值去调用属性和方法时,
	* 浏览器会临时使用包装类将其转换为对象,然后再调用对象的属性和方法
	*/
	 var num = 123;
	 num = num.toString();
	 console.log(typeof num); // string
	 s.hello = "hello";
	 console.log(s.hello);// Uncaught ReferenceError: s is not defined	 
</script>

4. 正则表达式

<script type="text/javascript">
	/*
	* 正则表达式:用于定义字符串的规则
	* 计算机可以根据正则表达式来检查一个字符串是否符合规则,
	* 或者将字符串中符合规则的内容提取出来
	*/
   
        /*
	* 创建正则表达式的对象
	*  语法:var 变量名= new RegExp("a","b);
	*   -- 参数a: 正则表达式
	*   -- 参数b: 匹配模式,可以是 i : 忽略大小写 g : 全局匹配模式
	*  使用typeof检查正则对象,会返回object
	*/
    
        var reg = new RegExp("a");
	console.log(reg); //输出是 /a/
	
	/*
	* 正则表达式的方法:
	* test()
	*  -- 使用这个方法可以检查一个字符串是否符合正则表达式的规则
	*  如果符合,则返回true
	*/ 
     
	console.log(reg.test("a"));//检查字符串"a"是否符合正则表达式reg , 返回true
	console.log(reg.test("dffads")); //检查字符串是否含有"a",true
	console.log(reg.test("A"));//正则对象严格区分大小写,返回false
	
	var reg1 = new RegExp("a","i");//忽略大小写
	console.log(reg1.test("A"));//返回true
	
</script>

5.使用字面量创建正则表达式和正则语法

<script type="text/javascript">
	/*
	* 使用字面量来创建正则表达式
	*   语法: var 变量名 = /正则表达式/匹配模式
	*/
        var reg = /a/i;
	console.log(typeof reg); //object
	 
	 //创建一个正则表达式,检查一个字符串中是否有a或者b,使用 | or [ ]表示或者
	 // a|b ==[ab]
	 reg = /a|b/;
	 console.log(reg.test("ad"));//true
	 
	 /*检查一个字符串中是否有字母
	 *[a-z] 表示任意小写字母 [A-Z]表示任意大写字母
	 *[A-z] 任意字母
	 */ 
	 reg = /[A-z]/
	 console.log(reg.test("aGd"));//true
	 
	 /*
	 * 检查一个字符串中是否含有abc 或 adc 或 aec
	 */ 
	 reg = /a[bde]c/
	 console.log(reg.test("aeec"));//false
	 
        /*
	* [^ab] 如果字符串中除了有a和b以外的字符,则返回true
	*/ 
	reg = /[^abc]/;
	console.log(reg.test("abcd"));//true
	console.log(reg.test("a"));//false
	
	/*
	* [0-9] 检查一个字符串中是否含有数字
	*/ 
        reg = /[0-9]/
	console.log(reg.test("ad"));//false
	console.log(reg.test("12s"));//true
</script>

6. 字符串和正则相关的方法:

<script type="text/javascript">
	/*
	* split() -- 将一个字符串拆分成一个数组
	*  传递正则表达式作为参数,根据该正则表达式对字符串进行拆分
	*/
	var str = "1a2b3c4d5e6f";
	var result = str.split("c");
	console.log(result);// ["1a2b3", "4d5e6f"]
	
	/*
	* 根据任意字母拆分字符串
	*/ 
	result = str.split(/[A-z]/);
	console.log(result);//["1", "2", "3", "4", "5", "6", ""]
	
	/*
	* search() 搜索字符串中是否含有指定内容,返回指定内容的第一次出现的索引值
	* 搜索不到,返回-1
	* 可以根据正则表达式作为参数搜索字符串
	*/ 
	str = "hellostrhellostr";
	result = str.search("str");
	console.log(result);// 5
	
	//检查字符串中是否含有 abc or aec or afc
	str = "helloabchelloaechelloafchello";
	result = str.search(/a[bef]c/);
	console.log(result);// 5
	
	/*
	*match() 可以根据正则表达式,将字符串中所有符合条件的内容取出
	* 并将匹配到的内容封装到数组中返回,即使只匹配到一个内容
	* 默认情况下,match只会找到第一个符合要求的内容,找到以后就停止检索
	* 可以使用正则表达式的全局匹配模式g,这样就会匹配到所有内容
	*/ 
        str = "1a2b3C4D5e6f";
	result = str.match(/[a-z]/gi);// 忽略大小写,全局匹配
	console.log(result);// ["a", "b", "C", "D", "e", "f"]
	
	/*
	* replace():将字符串中指定内容替换为新的内容
	*  第一个参数:被替换的内容
	*  默认只替换第一个,可以接受正则表达式作为参数
	*  第二个参数:新的内容
	*/
        result = str.replace(/[a-z]/ig,"*");
	console.log(result);// 1*2*3*4*5*6*
	
	 result = str.replace(/[a-z]/ig,"");
	console.log(result);//123456
</script>

7.正则语法

<script type="text/javascript">	
	/*
	* 量词 :通过量词可以设置一个内容出现的次数
	*  - {n} 正好出现n次,量词只对它前边的一个单词有作用
	*  - {m,n} 出现m到n次
	*  - {m,} 出现m次以上
	*  - + 至少出现一次,相当于{1,}
	*  - * 有无都可
	*  - ? 表示0个或1个,相当于{0,1}
	*  - ^x 表示是否以x开头
	*  - x$ 表示是否以x结尾
	*  - ^x$ 表示字符串完全符合x的表达式
	*/
	var reg = /a{3}/; //检查字符串中是否有3个a
	console.log(reg.test("aaabc")); // 返回 true
	reg = /ab{3}/; //检查的是 abbb
	console.log(reg.test("abababc")); // 返回 false
	console.log(reg.test("abbbc")); // 返回 true
	reg = /(ab){3}/; //检查的是 ababab
	console.log(reg.test("abababc")); // 返回 true
	reg = /^a/; // 检查是否以a开头
	console.log(reg.test("baax")); // false
	reg = /a$/; // 检查是否以a结尾
	console.log(reg.test("dfdfa")); // true
	reg = /^a|a$/; // 检查是否以a开头或者以a结尾
	console.log(reg.test("adf")); // true
	reg = /^a$/; //检查是否只有一个a
	console.log(reg.test("adf")); // false
	console.log(reg.test("a")); // true
</script>

正则练习:

//创建一个正则表达式,用来检查一个字符串是否是一个合法的手机号

思路:1.手机号必须全是数字,长度是11位

2.没有字母等其他字符

3.以数字1开头,第二位不能是1,2,0(3-9)任意,第三位以后任意

<script type="text/javascript">	
	/*
	* 正则练习:创建一个正则表达式。判断字符串是否是合法的手机号
	*/
	var reg = /^1[3-9][0-9]{9}$/;
	console.log(reg.test("11345678901"));//false
	console.log(reg.test("13345678901"));//true
	console.log(reg.test("1445643653465"));//false
</script>

8.正则语法补充

<script type="text/javascript">	
	/*
	* “.”  表示任意字符
	* 使用转义字符“ \ ” 
	* \. 表示 .
	* \\ 表示 \
	* 在构造函数中,要使用转义字符,要使用“\\”
	* \w 表示任意 字母,数字 和 下划线
	* \W 除了任意字母,数字和下划线
	* \s 空格
	* \S 除了空格
	* \d 任意数字
	* \D 除了数字
	* \b 单词边界
	* \D 除了单词边界
	*/

	//创建一个正则表达式,检查一个字符串是否含有单词child
	var reg = /\bchild\b/;
	console.log(reg.test("heychild"));// false
	console.log(reg.test("children"));//false
	console.log(reg.test("hey,child!"));//true
	
	//接收用户输入的一个字符串,去除字符串首尾两端的空格,但是不要去除字符串中间的空格
	//去除空格就是使用""来代替空格
	var str = "   na   me   ";
	str = str.replace(/\s/g,"");
	console.log(str);// 输出是 name ,将字符串中间的空格也去除
	str = str.replace(/^\s*|\s*$/g,"");
	console.log(str);//输出是 na   me
	
</script>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值