JavaScript-day18-个人学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39946352/article/details/78567767

JavaScript-day18-个人学习笔记


一、RegExp对象:封装了正则表达式,提供了利用正则表达式执行验证和查找的API。

1、何时使用:只要利用正则表达式执行验证和查找功能时。

2、创建:2种:

(1)var reg=/正则表达式/ig;何时使用:正则表达式在运行时不会改变。

(2)var reg=new RegExp("正则表达式","ig");何时使用:在运行时正则表达式可能被改变时。

强调:所有\都要改为\\

var str1="\\d{15}(\\d\\d[0-9xX])?";var reg=new RegExp(str1,"");

3、如何使用:2种操作:

(1)格式验证:var bool=reg.test(str)

验证:要求从头到尾必须完整匹配!

问题:test方法默认只要部分匹配即可!

解决:都要在正则表达式前加^,后加$;^表示开头位置;$表示结尾位置;^和$连用表示从头到尾必须完整匹配。


例:密码强度要求:6密码,只能是字母,数字的组合,至少包含一位大写字母,至少包含一位数字

预判:a、不全由小写字母或数字组成,可能包含大写或符号(?![a-z0-9]*$);b、不全由大写字母或小写字母组成,可能包含数字或符号(?![a-zA-Z]*$)

正式规则:只能是字母数字的组合,屏蔽符号(a-zA-Z0-9){6}

完整:(?![a-z0-9]*$)(?![a-zA-Z]*$)[a-zA-Z0-9]{6}


(2)查找API:var arr=reg.exec(str):在str中查找所有符合reg规定的关键字,要加g。

其中:arr[0]:保存了当前关键字的内容;arr.index:保存了当前关键字的位置;reg.lastIndex:保存下次开始查找的位置。

何时使用:只要即查找内容,又查找位置,只能用reg.exec。


总结:查找关键字

a、var i=str.search(reg)——判断有没有;缺点:不能指定开始位置

b、var arr=str.match(reg)——获得所有关键字内容,个数;缺点:不能返回位置

c、var i=str.indexOf("kword"[,starti])——从指定位置开始,查找下一个关键字的位置;缺点:不支持正则

d、var arr=reg.exec(str)——即获得内容,又获得位置;缺点:复杂

4、正则:贪婪模式与懒惰模式

默认贪婪模式:默认总是匹配最长的符合条件的字符串

原因:.*或.+等引起

懒惰模式:仅匹配最短的符合条件的字符串

贪婪变为懒惰:(.*?)

5、从正则表达式匹配结果中获取子内容:2步:

(1)正则表达式中:用()包括要获取子内容的部分

(2)程序中,本次查找后:RegExp.$n,取本次匹配结果中第n个()匹配的子内容,正则中n从1开始

二、String中的正则API:4个

1、2个查找:str.search(reg)    str.match(reg)

2、1个替换:str.replace(reg,"")

固定套路:利用replace格式化数据,替换值中,也可使用$n,和RegExp.$n的用法完全相同

3、1个切割:var arr=str.split(reg);

三、Math:专门执行数学计算的对象,封装了数学计算中常用的常量

1、取整:3种

(1)上取整:Math.ceil(n)

(2)下取整:Math.floor(n)

(3)四舍五入取整:Math.round(n);

round vs toFixed

toFixed:Number对象、按任意小数位数返回字符串

round:Math对象、只能取整、返回数字

2、乘方/开平方

乘方:Math.pow(n,m):计算n的m次方

开平方:Math.sqrt(n):计算n的平方根

3、获取最大值、最小值

Math.max(a,b,c....)

Math.min(a,b,c....)

固定套路:变相实现获取数组中最大值;Math.max.apply(Math,arr);相当于Math.max(arr[0],....)

4、随机数:Math.random();0<=n<1

任意min到max之间取一个随机整数;公式:parseInt(Math.random()*(max-min+1)+min)




猜你喜欢

转载自blog.csdn.net/weixin_39946352/article/details/78567767