JavaScript的引用数据类型-Date类型和RegExp类型 桃扇骨 2022-04-18 00:10 328阅读 0赞 **3.Date类型** date翻译成中文就是日期,日子的意思,而这个数据类型讲的也正是JavaScript时间的一种引用类型。 *1.创建Date实例的方式:* var myDate=new Date(); 和其他的引用类型一样,new操作符去new一个data对象出来。 *2.date类型对时间的格式化:* 再说这个之前,我先向大家推荐这样一个关于时间的JS库:[日期处理类库][Link 1],这样一个库能让我们更方便的对时间的格式化进行操作,当然,如果想自己给自己建一个这样JS库那更好,不是吗?好了,言归正传,我们所做的一些格式化一般都是用这个对象的方法去实现它的。比如我们去调用这么个方法:`myDate.toDateString();//Tue Nov 06 2018`,它就会给我们返回星期几,几月几号和哪一年,又比如:`myDate.toTimeString();//19:53:43 GMT+0800 (中国标准时间)`,它就会给我们返回具体的时间和我们所在的时区。 *3.时间的拼接:* 不仅这样,我们其实还有着一种更好的方法去表示时间,这种方法我们更容易看懂,那就是我们自己获取到月,日,年还有时间,我们自己去拼接然后再输出出来。 function text() { var myDate=new Date(); var year=myDate.getFullYear(); var month=myDate.getMonth()+1; var day=myDate.getDay(); var hours=myDate.getHours(); var minutes=myDate.getMinutes(); var seconds=myDate.getSeconds(); console.log("当前时间: "+year+"年"+month+"月"+day+"日 "+hours+":"+minutes+":"+seconds); //当前时间: 2018年11月2日 20:22:54 } 可能有的人会觉得奇怪了,为什么单单月那里要加1呢?其实啊这是因为月份这里它是从零开始的,也就是0~11,而我们生活中月份呢是从1~12所以我们要在这里加上1。 *4.更多的方法:* 其实不仅仅有这些方法, 像这样的方法会有很多,我们就不一个一个介绍了,我还是比较推荐大家去[MDN][]上面去学一学,而且还有重要的一点就是不要一看了事,能记多少记多少,特别是开发常用到的最好随手就能写,不然这样每用一次去查一次会很影响工作效率。 **4.RegExp类型** 正则表达式(RegExp),我一开始去学的时候是拒绝的,当时学习这个的心态就是单纯地认为存在即合理便去学了,因为没学过它的人一看这些一个个标点符号瞎\*\*(手动和谐)放一起,看的头都大了都看不出所以然来,但是呢。。。在工作中某个地方用到它之后你就不会后悔了,真香! *1.正则表达式:* 说了这么多,那正则表达式到底是用来干嘛的呢?在我们日常的开发中,一般都是用正则表达式来匹配用户的输入来判断是否合法。比如你让用户输身份证,他调皮,非要输汉字(当然,这样的方式我们前端会直接避免让他们只能输汉字),不然就是输个什么8008208820给你,你说这。。。但是你有什么办法呢?他们想输这些我们有控制不了,所以就需要我们去做限制,可是好好想想,如果我们用if语句去做判断那不是要写死人啊,这时候正则表达式就派上用场了。我们只需要这样: `isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;//15位数身份证验证正则表达式` `isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;//18位数身份证验证正则表达式` 我们对isIDCard1和isIDCard2做判断就能解决大部分问题。是不是轻松很多? *2.创建RegExp实例的方式:* 好,接下来我们来创建一个RegExp实例: var patt=new RegExp("正则表达式"); *3.RegExp类型的使用:* 接着我们使用这样一个正则表达式: patt.test("用户输入的内容"); 如果用户输入的内容符合正则表达式的匹配规则,那么返回的结果及时`true`不然就会返回`false`。 *4.开发中用到的正则表达式:* 我们开发中往往会写一些正则表达匹配这写内容: 手机号匹配:`/^(0|86|17951)?(13[0-9]|15[012356789]|18[0-9]|14[57]|17[678])[0-9]{8}$/`; Q Q号匹配:`/^[1-9][0-9]{4,9}$/gim`; Email匹配:`/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/` 还有上面的身份证匹配。可能有我没想到的规则,那请各位多多指正,我会及时修改,还有就是我会挑一个时间单独写一个正则的博客发出来,到时候希望各位多多捧场。 [Link 1]: http://momentjs.cn/ [MDN]: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date#Date_instances
还没有评论,来说两句吧...