JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法)

一丶正则的用法

创建正则对象:

方式一:
var reg=new RegExp('正则表达式');//注意,写在字符串中所有带\的元字符都会被转义,应该写作\\
reg.test('待检测的字符串') //如果字符串中含有符合表达式规则的内容就返回true,否则返回false 方式二:
var reg=new RegExp(/正则表达式/); //内部的元字符就不会转义了
reg.test('待检测的字符串') //如果字符串中含有符合表达式规则的内容就返回true,否则返回false

字符串中的正则方法

//match()方法: 匹配字符串
var emp='abcd1234';
var emp2='Day day up';
emp.match(/\d/); //只匹配一个数字
emp.match(/\d/g); //g 代表匹配所有符合规则的,返回一个数组 emp2.match(/d/); //只匹配小写的a
emp2.match(/D/i); //i 表示不区分大小写,匹配一个
emp2.match(/d/gi); // 匹配所有的符合d的所有字符,不区分大小写,返回一个数组 //search()方法:匹配索引第一个位置的索引
emp2.search(/正则表达式/i); //不区分大小写.从emp中找出符合子串第一个位置的索引位置
emp2.search(/a/); // 1 第一个a字符的索引位置 //split()方法 :根据正则切割,n是切出来几个
emp2.split(/正则表达式/i,n); //不区分大小写,根据正则切割,返回前n个结果
emp2.split(/''/i,2); // ["Day", "day"]
emp2.split(/a/i,); // ["D", "y d", "y up"] //replac()方法 :替换正则匹配出来的位置
emp2.replac(/正则表达式/gi,'新的值');//i表示不区分大小写,g表示替换所有,将符合正则条件的内容替换成新的值

额外的小问题

//问题1
var reg=/\d/g; //正则匹配多个数值
reg.test('a1b2');//多次匹配会进入轮循,第一次true,第二次true,第三次false,第四次true.... //问题2
var reg=/\w{5,10}/; //匹配字符或数字:5-10个
reg.test(); //如果为空,默认值是undefined,刚好也符合.

二丶Date对象

// 创建 日期对象
var dt=new Date(); // 1. 获取当前时间
console.log(dt); // Tue Aug 13 2019 19:45:25 GMT+0800 (中国标准时间) // 2.获取年月日,星期
dt.getFullYear(); //年
dt.getMonth(); //月,从0开始,范围 0-11
dt.getDate(); // 获取日
dt.getDay(); //星期几, // 3.获取时分秒
dt.getHours(); //获取小时
dt.getMinutes(); // 获取分钟
dt.getSeconds(); //秒 // 4. 自定义时间
var dt2=new Date('2018/12/12 12:12:12');
var dt3=new Date(2018,1,1) ; //浏览器不同显示天不同,但是月份始终少一个

三丶math对象

// 基础方法,可能会用到
Math.abs(x); //返回x的绝对值
Math.pow(x,y); //返回x的y次幂
Math.round(x); //四舍五入
Math.sqrt(x); //返回平方根
Math.exp(x); //返回e的指数, e约等于2.7
Math.log(x); //返回数的自然对数(底数e)
Math.sin(x); //返回正弦
Math.cos(x); //返回余弦
Math.tan(x); //返回正切
// 向下取整
var x=1.234
console.log(Math.ceil(x)); //2 // 向上取整
var x=1.234
console.log(Math.floor(x)); //1 // min/max 最小值/最大值
console.log(Math.min(1,2,3,4,5)); //1
console.log(Math.max(1,2,3,4,5)); //5
// 随机数  区间(0,1]
var ran=Math.random(); //取100-200之间的随机数,
//公式:min - max之间的随机数
//min+Math.random()*(max-min)
100+Math.random()*(200-100)

四丶面向对象

​   创建对象的几种常用方式:

1.使用Object或对象字面量创建对象

// 生成一个对象
var student= new Object(); // 封装两个属性
student.name='easy';
student.age='20';

2.工厂模式创建对象

// 工厂模式
function createStudent(name,age){
// 实例化一个对象
var obj=new Object(); //给这个对象封装属性
obj.name=name;
obj.age=age; //将这个对象返回
return obj;
} var s1=new createStudent('easy1',20); //方式一,new
var s2=createStudent('easy2',22); // 方式二,直接使用类创建对象

3.构造函数模式创建对象

​      1.实际上并不存在创建构造函数的特殊语法,其与普通函数唯一的区别在于调用方法。对于任意函数,使用new操作符调用,那么它就是构造函数;不使用new操作符调用,那么它就是普通函数

​      2.按照惯例,我们约定构造函数名以大写字母开头,普通函数以小写字母开头,这样有利于显性区分二者。例如上面的new Array(),new Object()。

      3.使用new操作符调用构造函数时,会经历(1)创建一个新对象;(2)将构造函数作用域赋给新对象(使this指向该新对象);(3)执行构造函数代码;(4)返回新对象;4个阶段

// 创建一个js类
function Student(name,age){
this.name=name;
this.age=age;
this.alertName=function(){
alert(this.name);
};
} //实例化对象
var s1=new Student('d',18);
var s2=new Student('l',20); //instanceof操作符来检测对象类型
var a1=new Array(20);//实例化一个数组对象
var s1=new Student('年年',20); alert(s1 instanceof Student); // true
alert(s1 instanceof Array); //false alert(a1 instanceof Student); // false
alert(a1 instanceof Array); // true alert(a1 instanceof Object); //true 一切对象都来自Object
alert(s1 instanceof Object); //true

​      番外篇:是将对象方法移到构造函数外部

JavaScript---正则使用,日期Date的使用,Math的使用,JS面向对象(工厂模式,元模型创建对象,Object添加方法)的更多相关文章

  1. 谈谈javascript中的日期Date对象

    一.日期对象  在javascript中并没有日期型的数据类型,但是提供了一个日期对象可以操作日期和时间.  日期对象的创建:  new Date();二.将日期对象转换为字符串  将日期对象转换为字 ...

  2. 【JavaScript】 JS面向对象的模式与实践 (重点整治原型这个熊孩子 (/= _ =)/~┴┴ )

    参考书籍 <JavaScript高级语言程序设计>—— Nicholas C.Zakas <你不知道的JavaScript>  —— KYLE SIMPSON   在JS的面向 ...

  3. 重学js之JavaScript 面向对象的程序设计(创建对象)

    注意: 本文章为 <重学js之JavaScript高级程序设计>系列第五章[JavaScript引用类型]. 关于<重学js之JavaScript高级程序设计>是重新回顾js基 ...

  4. JavaScript面向对象OOM 2(JavaScript 创建对象的工厂模式和构造函数模式)

      在创建对象的时候,使用对象字面量和 new Object() 构造函数的方式创建一个对象是最简单最方便的方式.但是凡是处于初级阶段的事物都会不可避免的存在一个问题,没有普适性,意思就是说我要为世界 ...

  5. JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)

    day46 一丶javascript介绍 JavaScript的基础分为三个       1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...

  6. javascript中的Date对象和Math对象

    1.Date对象 1.创建Date对象 var time1=new Date() 方法1:不指定参数 var time1=new Date(); alert(time1.toLocaleString( ...

  7. javascript类型系统——日期Date对象

    × 目录 [1]静态方法 [2]构造函数 [3]实例方法 前面的话 Date对象是javascript语言中内置的数据类型,用于提供日期和时间的操作接口.Date对象是在早期java中的java.ut ...

  8. JavaScript学习总结二(Date对象的用法)

    javascript Date对象的常用API 1:创建日期 Date 对象用于处理日期和时间. 可以通过 new 关键词来定义 Date 对象.以下代码定义了名为 myDate 的 Date 对象: ...

  9. js中的函数,Date对象,Math对象和数组对象

    函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. ...

随机推荐

  1. 201671030129 周婷 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 团队项目评审&课程学习总结 课程学习目标 (1)完成项目验收(2)反思总结课程学习内容 1.对<实验一 软件工程准备&g ...

  2. JSOI 2015 送礼物

    [BZOJ4476] [JSOI2015]送礼物 Description JYY和CX的结婚纪念日即将到来,JYY来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店很神奇,所有出售的礼物都按照特定的顺序都 ...

  3. 树莓派项目(1-2)人脸识别 C++

    级联分类器 在这里,我们学习如何使用objdetect在我们的图像或视频中查找对象 https://docs.opencv.org/3.3.0/db/d28/tutorial_cascade_clas ...

  4. 创建、查看、删除计划任务at命令举例

    1.三天后的下午 5 点执行 /bin/ls : at 5pm + 3 days at> /bin/ls             结束按ctrl+d 查看计划任务:at -l 之后 at -c ...

  5. Echarts数据更新大坑

    今天使用了一个Echarts来实现柱状图和直线图统计组合,每次通过axios(ajax库)来请求新数据来刷新数据,但是发现请求数据确实是对应变化到了options变量中,后台数据条数只有一条,但是图表 ...

  6. Linux stty命令

    stty是linux下改变和打印终端设置的常用命令. 一.参数: 1.打印终端行设置 -a,--all   以人可读的方式打印所有当前设置:-a参数比单独的stty命令输出的终端信息更详细 -g,-- ...

  7. 对C++11中的`移动语义`与`右值引用`的介绍与讨论

    本文主要介绍了C++11中的移动语义与右值引用, 并且对其中的一些坑做了深入的讨论. 在正式介绍这部分内容之前, 我们先介绍一下rule of three/five原则, 与copy-and-swap ...

  8. redis为何单线程 效率还这么高 为何使用跳表不使用B+树做索引(阿里)

    如果想了解 redis 与Memcache的区别参考:Redis和Memcache的区别总结 阿里的面试官问问我为何redis 使用跳表做索引,却不是用B+树做索引 因为B+树的原理是 叶子节点存储数 ...

  9. Windows10 下 JAVA JDK版本设置修改操作

    一般情况下,先修改系统环境变量,右键点击桌面上的“此电脑”图标中,选择“属性”,在弹出的属性窗口中选择“高级系统设置”,然后点击“环境变量”     在弹出窗口中的“系统变量”,查到“JAVA_HOM ...

  10. 您访问的URL地址不被允许。

    访问一个网站在一定时间内的频率过高会被当做攻击网站的行为,然后会被该网站限制访问,再次访问该网站便会出现以下界面,解决办法有: ①更改自己电脑的IP地址 ②换一个设备访问,比如把用电脑访问换成用手机访 ...