码迷,mamicode.com
首页 > 其他好文 > 详细

ES6浅谈--字符串新方法,正则扩展,数值扩展

时间:2019-12-31 18:20:01      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:要求   直接   repeat   匹配   大写   psi   dstar   正则表达   定位   

 

新方法:

1.repeat(),表示原字符串重复n次,n为参数,小数取整,无穷报错,负数报错,大于-1取0(空),NaN取0,字符串转成数字。

2.padStart(),padEnd(),补全长度,第一个参数为补充长度,第二个参数为补全字符内容,省略第二个参数则默认以空格补全。常用于补全指定位数和提示字符串格式。

3.trimStart(),trimEnd(),删除实际内容前和后的空格。对换行符和不可见空白符号都有效。

正则:

1.可以在new RegExp时第二个参数(修饰符)和第一个参数(正则表达式)格式不同,如第一个参数为正则(有修饰符),第二个为字符串。第一个参数内的正则的修饰符会被第二个参数的修饰符覆盖。

2.u修饰符,可以识别unicode字符(后面为配合使用):点字符,匹配任意字符,加u可以识别码大于0xFFFF的字符。{}内表示u码量词,预定义也是需要加u识别大于0xFFFF的字符,加u还可以区分出字符相近的状况,还可以对没有转义的字符(\,这样)报错。

3.y修饰符,区别于g修饰符。g修饰符没有位置要求,在第一次匹配之后可以在后面的字符任意选择匹配。y修饰符必须在剩余字符串头部进行匹配。使用y修饰符的时候,在用replace()方法,参数是一个正则:

const REGEX = /a/gy;
‘aaxa‘.replace(REGEX, ‘-‘) // ‘--xa‘

这里只会替换部分的原因是aaxa中间有个x使y修饰符在找到第二个a之后找第三个x就直接停止匹配。y修饰符必须与g修饰符连用才能返回所有匹配。另外y修饰符可以对非法匹配报错直接跳出匹配,原理就是头部匹配。

4.点操作符可以通过s修饰符完成对任意字符匹配,包括换行符等。

5.先行断言”指的是,x只有在y前面才匹配,必须写成/x(?=y)/。比如,只匹配百分号之前的数字,要写成/\d+(?=%)/。“先行否定断言”指的是,x只有不在y前面才匹配,必须写成/x(?!y)/。比如,只匹配不在百分号之前的数字,要写成/\d+(?!%)/。“后行断言”正好与“先行断言”相反,x只有在y后面才匹配,必须写成/(?<=y)x/。比如,只匹配美元符号之后的数字,要写成/(?<=\$)\d+/。“后行否定断言”则与“先行否定断言”相反,x只有不在y后面才匹配,必须写成/(?<!y)x/。比如,只匹配不在美元符号后面的数字,要写成/(?<!\$)\d+/

数值:

1.用0o,0b(字母可以大写)分别表示八进制和二进制,严格模式会报错,转换成10进制用Number()方法。

2.Number.isFinite(),Number.isNaN(),Number.parseInt/parseFloat()方法与之前方法大体无区别,唯一区别是转换值必须是Number类型,转换值为参数,这么做的目的是为了让语言模块化。

3.Number.isInteger(),检测数值是否为整数,15.0也算整数,true不是数值不算整数,小数点后16位会被舍弃导致16位后的数值不是0会被忽略,然后识别成整数,小于可识别数也会被认为是0即整数。

4.Number.EPSILON,极小常量,一般用于检测误差是否在允许范围之内,比如,误差范围设为 2 的-50 次方(即Number.EPSILON * Math.pow(2, 2))。

5.Number.isSafeInteger(),判断整数是否在安全整数内(2的53次方),实质是和边界值进行比较。

今天就到这先。

ES6浅谈--字符串新方法,正则扩展,数值扩展

标签:要求   直接   repeat   匹配   大写   psi   dstar   正则表达   定位   

原文地址:https://www.cnblogs.com/harrywu96/p/12125125.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!