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>