Math对象
(1) Math不是构造函数,是一个工具对象,封装了数学的常用量和方法-》对象;
1:Math的属性
例如:Math.PI (可以查手册,此处不做过多介绍)3.141592653589793表示圆周率
2: Math的方法
console.log(Math.abs(-1));//Math.abs(-1)绝对值方法
console.log(Math.ceil(1.5));//Math.ceil(1.5)向上取值 1.1-》2 ; 1.5——》2;
console.log(Math.floor(1.1));//Math.floor(1.1)向下取值丢掉小数。
console.log(Math.round(1.5));//Math.round(1.5)->2四舍五入;
console.log(Math.pow(3,2));//Math.pow(x,y),x的Y次方;
生成0~y的随机数Math.round(Math.random()*y);
生成x~y 的Math.round(Math.random()*(y-x)+x);
for(var i=0;i<10;i++)
console.log(Math.round(Math.random()*10));
包装类
// 包装类:就是把基本数据类型转换为对象;
// String(),Number(),Boolean(),可以把基本数据类型转换为一个对象
// 例如:
var a=new Number(10);
console.log(typeofa);//"object"
//一般是用来隐式调用;
例如:a.toString()方法,a本身是一个基本数据类型,将其暂时转换为Number对象在调用tostring()方法.
Sting对象的属性和方法
符串的方法(字符串本质是一个字符数组的形式保存的)String对象的方法和属性
var a="helloworld";
console.log(a.length);//length属性表示字符串的长度
// 字符串的方法
1:charAt()方法
a=a.charAt(5);/获取指定位置的字符结果为空格字符a[5]=" ";
console.log(a);
2:charCodeAt();
a=a.charCodeAt(5);//获取指定字符的unicode编码
3:concat()连接字符串
var b="jsfj";
b=b.concat(a);//连接多个字符串并将新的字符串返回。
console.log(b);
4:indexof(start,end);//该方法用来检索字符串,返回第一次找到的位置
b=b.indexOf('h');//"4" b[4]=h
lastindexOf()方法;从后面检索
console.log(b);
5:split(" ")方法参数是一个界定符,用来作为分割字符串;
var a="hello world";
console.log(a.split(""))//"hello,world"以空格为界定符来分割字符串。
6:slice(start,end);用来截取字符串
7:toLowerCse(),转换为小写字符toUpperCase();转换为大写字符
正则表达式
正则表达式:用来定义字符串的一些规则,计算机可以根据正则表达式来进行检查字符串是否符合当前的规则
1:创建一个正则表达式
例如: var a=newRegExp("a","i");//创建一个正则表达式a,第一个参数a表示这个正则表达式
第二个参数 i:表示匹配忽略大小写 g:表示完全匹配;
var a=new RegExp("B","g");
var b="aaabbbcccA";
console.log(a.test(b));//test()方法用来测试当前字符串中是否符合正则表达式。
2:常量个方式创建正则表达式
var reg=/a/i ;等价于var a=newRegExp("a","i");
格式 var 变量=/正则表达式/匹配模式(i忽略大小写,g完全匹配)
reg=/a|b/ ;//表示字符串中是否含有a或者b
reg=/[a-d]/ ;//表示字符串中是否含有a-d中的任意字符
reg=/[^a-d]/;表示除了a-d的任意字符;
reg=/a[bcd]e/;//表示已a和e字符结尾,第二个字符为b或c或d;
3:字符串的方法和正则表达式
(1)split()方法可以将字符串根据参数分割
例如:
var a="hello1 name2 age3";
console.log(a.split(" "));//根据空格字符将字符串分割;"hello1,name2,age3"
// 参数要求为根据任意的字母进行分割时普通的参数就不能满足要求需要用正则表达式;
console.log(a.split(/[a-z]/ig));//",,,,,1 ,,,,2 ,,,3"
split()方法即使不使用全局匹配,也会使用全局匹配;
(2)search()搜索字符串中是否含有指定字符与(indexof()方法类似),但是他可以传入一个正则表达式
// (不能全局匹配只会查找一个);
var a="hello nameage";
console.log(a.search(/a/));//"7"
(3)match()方法根据正则表达式,将一个字符串符合条件的内容提取出来(默认情况下只会找到第一个符合要求的)
// 可以使用全局匹配;
var a="123fsdgg 55d6gdfdsgs45g6";
console.log(a.match(/[0-9]/g));//"1,2,3,5,5,6,4,5,6"提出了数字.
(4)replace()将字符串中的指定内容替换为新内容
vara="123fsdgg55d6gdfdsgs45g6";
console.log(a.replace(/[0-9]/g,""));//将数字替换为空串,就是把数字字符删除.
(5)量词 :设置一个内容出现的次数{n}出现n次;
{n}表示连续出现n次只对前面的一个字符生效,{m,n}出现m~n次;
+表示至少一个 *表示0个或者多个 ?出现0个或者1个
^表示以这个字符开头 $表示已这个字符结尾 /^a$/表示以a字符开头而且以结尾等价于"a"
var reg=/a{3}/;//表示aaa匹配
console.log(reg.test("bb"));//false
var reg=/(ab){3}/;
console.log(reg.test("ababab"));//true
var reg=/ab{3}/;// 出现a后面出现连续的三个b;
console.log(reg.test("cbbb"));//false
var reg=/ab{1,3}/;// b出现1到3次
console.log(reg.test("ab"));//"true"
例如:电话号码的匹配
匹配规则 : 1 第一位必须以1开头 …… ^1
2 第二位必须是3-9的任意字符 [3-9];
3 三位后面有9位必须要结尾 [0-9]{9}$
var phoneReg=/^1[3-9][0-9]{9}$/;
(6)特殊字符的匹配
特殊字符的匹配,在JS中某些特殊字符有特殊的含义
// 例如 .表示任意字符,如果需要检查字符串中是否含有点需要使用转义字符/
// var str="hello.";
// var reg=/./;
// console.log(reg.test(str));
// 其余的参考手册:不一一举例;
//
// 练习:去除字符串中的空格当用户输入用户名是我们需要去除其中的字符,并且如果有意输入的空格需要保存,无意的空格需要删除
var str=" hello name ";
var reg=/^\s*|\s*$/g;
console.log(str.replace(reg,""));//"hello name"