1. Boolean 对象
Boolean 对象表示两个值:"true" 或 "false"。
创建 Boolean 对象的语法: new Boolean(value); //构造函数 Boolean(value); //转换函数
参数:参数 value 由布尔对象存放的值或者要转换成布尔值的值。 返回值:当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。
如果作为一个函数(不带有运算符 new) 调用时,Boolean() 只将把它的参数转换 成一个原始的布尔值,并且返回这个值。
注释:如果省略 value 参数,或者设置为0、-0、null、""、false、undefined 或 NaN,则该对象设置为 false。否则设置为 true(即使 value 参数是字符串 "false")。
2.Math对象
Math对象用来处理所有的数学运算
2.1 创建Math对象
Math对象不能用new运算符创建,如果试图这样做则给出错误。
2.2 Math对象的方法
<center>表 2-1 Math对象的常用方法</center>
方法 | 解释 |
---|---|
abs(x) | 返回数字的绝对值 |
acos(x) | 返回数字的反余弦值 |
asin(x) | 返回数字的反正弦值 |
atan(x) | 返回位于-PI/2 和 PI/2 的反正切值 |
atan2(y,x) | 返回(x,y)位于 -PI 到 PI 之间的角度 |
ceil(x) | 返回x四舍五入后的最大整数 (方法执行的是向上取整计算,它返回的 |
cos(x) | 返回一个数字的余弦值 |
exp(x) | 返回 E^x 值 |
floor(x) | 返回 x 四舍五入后的最小整数 |
log(x) | 返回底数为E的自然对数 |
max(x,y) | 返回 x 和 y 之间较大的数 |
min(x,y) | 返回 x 和 y 之间较小的数 |
pow(x,y) | 返回 y^x 的值 |
random() | 返回位于 0 到 1 之间的随机函数 |
round(x) | 四舍五入后取整 |
sin(x) | 返回数字的正弦值 |
sqrt(x) | 返回数字的平方根 |
tan(x) | 返回一个角度的正切值 |
注意:Math对象没有构造函数,所以不能new!唯一一个所有API都直接通过Math类型名调用
1.取整: 上取整:只要超过,就取下一个整数;
Math.ceil(num)
var num = 3.14159
var m1 =Math.ceil(num);
console.log(m1); //4
下取整:去掉小数部分,取整数部分
Math.floor(num);
var m2 = Math.floor(num);
console.log(m2); //3
四舍五入取整:小数部分够5就进1,不够就舍掉
var num=Math.round(num) 缺点:只能取整
var n1 = 4.3221;
var m3 = Math.round(n1);
console.log(m3); //4
var n2 = 4.5221;
var m4 = Math.round(n2);
console.log(m4); //5
var str=s.toFixed(d); d:0-20之间 缺点:返回字符串,不能直接用于计算
var s = 6.23466;
var str = s.toFixed(2);
console.log(str); //6.23
2.乘方和开平方 乘方: Math.pow(底数,幂)
var n1=Math.pow(10,2); //10*10
console.log(n1) //100
开平方: Math.sqrt(num);
var n2 = Math.sqrt(9,2);
console.log(n2); //3
3.最大值和最小值
Math.max(值1,值2,...) //最大值
var m1 = Math.max(11,33,2,111,32);
console.log(m1); //111
Math.min(值1,值2,...) //最小值
var m2 = Math.min(222,1,33,44,2);
console.log(m2); //1
如何获取数组中的最大值与最小值:
固定套路
Math.max.apply(Math,str); 最大值 Math.min.apply(Math,str); 最小值
var str = [11,2,33,111,222,44];
var max =Math.max.apply(Math,str);
console.log(max); //222
var min = Math.min.apply(Math,str);
console.log(min); //2
4.随机数: 任意min~max之间取随机整数
Math.floor(Math.random()*(max-min+1)+min)
如果min从0开始,可简写为:
Math.floor(Math.random()*(max+1))
var num = Math.floor(Math.random()*(15-1));
console.log(num);
//num等于0-15生成随机数
3.正则表达式
3.1 正则表达式语法
一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行 匹配。
3.2 创建正则表达式
3.2.1 正则表达式简介
什么是正则表达式简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。其作用如下:
-
测试字符串的某个模式 例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
-
替换文本 可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
-
根据模式匹配从字符串中提取一个子字符串。 可以用来在文本或输入字段中查找特定文字。
3.2.2 使用new关键词创建RegExp对象
new RegExp(pattern, attributes); 参数1: pattern是一个字符串, 指定了正则表达式的模式或其他正则表达式。 参数2: attributes是一个可选的模式字符串, 包含属性 "g","i","m",分别用于指定全 文匹配、忽略大小写匹配和多行匹配。 •g (全文匹配(查找)) •i (忽略大小写匹配(查找)) •m (多行匹配(查找))
例如:
var re = new RegExp("a", "i");
var str = "cdbBadbsbdabdz";
var arr = re.exec(str);
console.log(arr+"---"+arr.index);
3.2.3 使用字面量创建RegExp对象
var re = /a/i;
var str = "cdbBadbsbdabdz";
var arr = re.exec(str);
console.log(arr+"---"+arr.index);
3.3 RegExp对象常用属性介绍
var pattern=/e/gi;
//g 设置全局模式将返回:true
console.log(pattern.global);
//i 设置忽略大小写将返回:true
console.log(pattern.ignoreCase);
//m 设置多行查找将返回:true
console.log(pattern.multiline);
//将返回搜索的原数据
console.log(pattern.source);
var arr = pattern.exec("abcdd3e3");
//获取查找到的元素下标
console.log(arr.index);
global - g(设置全局模式) ignoreCase - i(设置忽略大小写) multiline - m(设置多行查找)
3.4 RegExp对象常用函数介绍
3.4.1 test()
该函数搜索字符串中是否包含指定的值,包含返回true
var pattern=/t/;
var str="just do it";
//test()函数搜索字符串中是否包含指定的值,
包含返回true,否则 false
console.log(pattern.test(str));
3.4.2 exec()
该函数搜索字符串中是否包含指定的值,返回包含匹配的值;无匹配,则返回null。
var pattern=/O/i;
var str="just do it";
console.log(pattern.exec(str));
var pattern=/t/g;
var str="just do it";
var index = 0;
do {
var result=pattern.exec(str);
if(result!=null){
console.log((++index)+"---"+result);
}
}while(result!=null);
3.4.3 compile()
compile()函数既可以改变检索模式,还可以添加或删除第2个参数
var pattern=/s/i;
var str="just do it";
console.log(pattern.test(str));
pattern.compile("d");
console.log(pattern.test(str));
3.5 何时使用
查找 验证 替换 切割
模糊查找,验证字符串格式,模糊替换,按照一定规律切割字符串
3.6 正则语法
3.6.1 元字符
对常用字符集的简写方式
\d:1位数字 [0-9] \w: 1位数字,字母或下划线 [0-9a-zA-Z_] \s: 1位空字符:空格 tab 回车换行;
<center>表 3-1 元字符表</center>
元字符 | 描述 |
---|---|
. | 查找单个字符,除了换行和行结束符。 |
\w | 查找单词字符。 |
\W | 查找非单词字符。 |
\d | 查找数字。 |
\D | 查找非数字字符。 |
\s | 查找空白字符。 |
\S | 查找非空白字符。 |
\b | 匹配单词边界。 |
\B | 匹配非单词边界。 |
\0 | 查找 NUL 字符。 |
\n | 查找换行符。 |
\f | 查找换页符。 |
\r | 查找回车符。 |
\t | 查找制表符。 |
\v | 查找垂直制表符。 |
\xxx | 查找以八进制数 xxx 规定的字符。 |
\xdd | 查找以十六进制数 dd 规定的字符。 |
\uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
元字符:对常用字符集的简写方式
\d:1位数字 [0-9] \w: 1位数字,字母或下划线 [0-9a-zA-Z_] \s: 1位空字符:空格 tab 回车换行;
实例
var str = "a2b3c4d7kjs98{7S2是";
var reg = /[0-9]/g;
// \d 表示只匹配数字
var array = str.match(reg);
console.log(array);
//输出 ["2", "3", "4", "7",
"9", "8", "7", "2"]
var str = "a2b3c4d7kjs98{7S2是";
var reg = /\D/g;
// \D 表示只匹配非数字
var array = str.match(reg);
console.log(array);
// 输出 ["a", "b", "c", "d", "k",
"j", "s", "{", "S", "是"]
var str = "a2b3c4d7kjs98{7S2是";
var reg = /\w/g;
// \w 表示匹配单字母和数字
var array = str.match(reg);
console.log(array);
// 输出 ["a", "2", "b", "3", "c",
"4", "d", "7", "k", "j", "s", "9",
"8", "7", "S", "2"]
var str = "a2b3c4d7kjs98{7S2是";
var reg = /\W/g;
// \W 表示匹配非单字母和非数字
var array = str.match(reg);
console.log(array);
// 输出 ["{", "是"]
3.6.2 量词:规定一个字符集出现次数的量词
如何使用:紧跟字符集之后,修改相邻的前一个字符集
1.确定数量:3种: {m,n} 最少m个,最多n个 {m,} m个以上 {m} 必须m个
2.不确定数量:3种: ?: 可有可无,最多一个 *: 可有可无,多了不限 +: 至少一个,多了不限
3.选择和分组: 分组: (子表达式); 选择:或 表达式1|表达式2;
4.指定匹配位置: ^: 开头位置的xxx, 专用在表达式开头 $: 结尾位置的xxx, 专用在表达式结尾比如: ^\s+ 匹配开始位置的所有空字符 \s+$ 匹配 结尾位置的所有空字符 ^\s+|\s+$ 匹配开头或结尾的空字符 前加^后加$(不带|) 表示从头到尾完整匹配;
<center>表 3-2 量词表</center>
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串。 |
n* | 匹配任何包含零个或多个 n 的字符串。 |
n? | 匹配任何包含零个或一个 n 的字符串。 |
n{X} | 匹配包含 X 个 n 的序列的字符串。 |
n{X,Y} | 匹配包含 X 至 Y 个 n 的序列的字符串。 |
n{X,} | 匹配包含至少 X 个 n 的序列的字符串。 |
n$ | 匹配任何结尾为 n 的字符串。 |
^n | 匹配任何开头为 n 的字符串。 |
?=n | 匹配任何其后紧接指定字符串 n 的字符串。 |
?!n | 匹配任何其后没有紧接指定字符串 n 的字符串。 |
实例
var str = "abccootcooacoccCciccc";
//var reg = /c*/gi;
// * 表示 0个 或 多个
var reg = /c{0,}/gi;
//{0,} 等价与 *
var array = str.match(reg);
console.log(array);
// 输出 ["", "", "cc", "",
"", "", "c", "", "", "", "c",
"", "ccCc", "", "ccc", ""]
var str = "abccootcooacoccCciccc";
//var reg = /c+/gi;
// + 表示 1个 或 多个
var reg = /c{1,}/gi;
// {1,} 等 价 与 +
var array = str.match(reg);
console.log(array);
// 输出 ["cc", "c", "c", "ccCc", "ccc"]
//var reg = /c?/gi;
// ? 表示 0个 或 1个
var reg = /c{0,1}/gi;
// {0,1} 等价与 ?
var array = str.match(reg);
console.log(array);
// 输出 ["", "", "c", "c",
"", "", "", "c", "", "",
"", "c", "", "c", "c", "C",
"c", "", "c", "c", "c", ""]
var reg = /c{2,3}/gi;
//{n,m} 表示最少n个 最多m个
array = str.match(reg);
console.log(array);
// 输出 ["cc", "ccC", "ccc"]
3.6.3 选择和分组
选择和分组: 分组: (子表达式); 选择:或 表达式1|表达式2;
实例
var str = "abccootcooacoccCciccc";
var reg = /(a|b|c)c/gi;
// (a|b)分组 | 或者
var array = str.match(reg);
console.log(array);
3.6.4 指定匹配位置
指定匹配位置:
^:开头位置的xxx,专用在表达式开头 $:结尾位置的xxx,专用在表达式结尾 比如:^\s+ 匹配开始位置的所有空字符 \s+$ 匹配结尾位置的所有空字符 ^\s+|\s+$ 匹配开头或结尾的空字符 前加^后加$(不带|):表示从头到尾完整匹配;
实例
var array =
['test.txt','tss.txt','aa.txt','cc.jpg','kk.jpg','ta.jpg'];
// ^ 表示 开头
// . 表示任意 一个 字符
// $ 表示结尾
var reg = /^t.*txt$/;
for(var i=0;i<array.length;i++){
console.log(reg.exec(array[i]));
}
3.7 String对象和正则表达式相关的函数
match()搜索匹配的元素 search()搜索匹配的元素返回下标位置 replace()替换匹配的元素 split()根据规则分裂字符串
//开启全局模式
var pattern =/s/g;
var str = "alsl sdwl s1`2 3s";
//以数组的形式返回匹配的元素
console.log(str.match(pattern));
//返回第一个搜索到的元素下标位置
console.log(str.search(pattern));
//将匹配pattern的对应元素,全部替换为参数2指定的元素(大写的O)
console.log(str.replace(pattern,"O"));
var pattern1 = /\s/g; //\s表示空格字符
//根据给定的正则表达式将字符串进行分裂操作
console.log(str.split(pattern1));
4. 正则表达式实战案例
4.1 手机验证
/^1[3-9]\d{9}$/
var reg = /^1[3-9]\d{9}$/;
var num1 = "150123456789"
var num2 = "10123456789 "
console.log(reg.test(num1)) // true
console.log(reg.test(num2)) // false
4.2 密码强度验证:
/^(?![a-z0-9]+)[a-zA-Z0-9]{8,10}$/;
var reg =
/^(?![a-z0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{8,10}$/;
var pwd = null;
while(!reg.test(pwd==prompt("输入密码:"))){
alert("密码强度不够");
}
alert("密码安全")
4.3 Email验证
/^(\w)+(.\w+)*@(\w)+((.\w+)+)$/
var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/
var email1 = "234234452@qq.com";
var email2 = "234234452@qq";
console.log(reg.test(email1)); // true
console.log(reg.test(email2)); // false
PS:纯属本人原创,如有错误 欢迎指点 不才会及时更正 互相学习