Javascript常用内置对象如下:
| 对象 | 说明 |
|---|---|
| Number | 数字对象 |
| String | 字符串对象 |
| Array | 数组对象 |
| Math | 数学对象 |
| Date | 日期对象 |
| RegExp | 正则表达式 |
其中的String与Array对象在前面的章节已经做过详细讲解,本节我们看看其它内置对象。
1.Number对象
<script>
let n1 = 100; //number类型
let n2 = new Number(100); //对象类型。
let num = 100.489;
let s1 = "500";
let s2 = "abc";
console.info(num);
console.info(n1);
console.info(typeof(n1));
console.info(n2);
console.info(typeof(n2));
console.info(n2.valueOf()); //因为的对象类型,可以调用valueOf().
console.info(Number.MAX_VALUE);
console.info(Number.MIN_VALUE);
console.info(Number(s1)); //强制转换为数字
console.info(Number(s2));//强制转换为数字
console.info(num.toLocaleString());
console.info(num.toFixed(1)); //遵循四舍五入。
console.info(-100/0);//负无穷大
</script>
运行结果:
100.489
100
number
Number {100}
object
100
1.7976931348623157e+308
5e-324
500
NaN
100.489
100.5
-Infinity
2.Math对象
<script>
console.info(Math.abs(-10)); //绝对值
console.info(Math.sqrt(25)); //平方根
console.info(Math.pow(2,10)); //2的十次方
console.info(Math.round(3.99999)); //取整
console.info(Math.round(3.49999));
//生成10个1-100之间的随机数
console.log("生成10个1-100之间的随机数");
for(let i=0;i<10;i++){
console.info(parseInt(Math.random()*1000)%100+1);
}
</script>
运行结果:
10
5
1024
4
3
生成10个1-100之间的随机数
75
99
42
21
52
40
30
68
9
48
3.Date对象
Date 对象用于处理日期和时间。
<script>
let d = new Date();
let year = d.getFullYear(); //获得年份
console.info(year);
let month = d.getMonth(); //获得月份,注意从0开始
console.info(month);
let date = d.getDate(); //获得日期
console.info(date);
let day = d.getDay(); //获得星期几
console.info(day);
let hours = d.getHours(); //获得小时
console.info(hours);
let minutes = d.getMinutes();
let seconds = d.getSeconds();
console.info(year+"年"+(month+1)+"月"+date+"日 "+hours+":"+minutes+":"+seconds);
console.info(d.toLocaleDateString());
console.info(d.toLocaleString());
</script>
运行结果:
2020
2
27
5
15
2020年3月27日 15:8:22
2020/3/27
2020/3/27 下午3:08:22
4.RegExp对象
RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
<script>
let email = "32432341@qq"; //非法的。
let reg = new RegExp("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$");
if(reg.test(email)){//用指定的正则表达式对象检查某个字符串对象是否符合该正则表达式,返回布尔类型
console.info("该电子邮箱合法!")
}else{
console.info("该电子邮箱非法!")
}
</script>
运行结果:
该电子邮箱非法!
最后附上一些常用的正则表达式:
一、校验数字的表达式
1 数字:^[0-9]*$
2 n位的数字:^\d{n}$
3 至少n位的数字:^\d{n,}$
4 m-n位的数字:^\d{m,n}$
5 零和非零开头的数字:^(0|[1-9][0-9]*)$
6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
13 非负整数:^\d+$ 或 ^[1-9]\d*|0$
14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
二、校验字符的表达式
1 汉字:^[\u4e00-\u9fa5]{0,}$
2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
3 长度为3-20的所有字符:^.{3,20}$
4 由26个英文字母组成的字符串:^[A-Za-z]+$
5 由26个大写英文字母组成的字符串:^[A-Z]+$
6 由26个小写英文字母组成的字符串:^[a-z]+$
7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
8 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$
9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
11 可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+
12 禁止输入含有~的字符:[^~\x22]+
三、特殊需求表达式
Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
身份证号(15位、18位数字):^\d{15}|\d{18}$
短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
日期格式:^\d{4}-\d{1,2}-\d{1,2}
一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
中文字符的正则表达式:[\u4e00-\u9fa5]
双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
空白行的正则表达式:\n\s*\r (可以用来删除空白行)
HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)
首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)
腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
P地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)