- var reg = /pattern/flags 或者是 var reg = new RegExp(pattern,flags)
- 标志:i---忽略,m---多行匹配, g---全局匹配
-
对象字面创建方式不能字符串拼接,并且不需要转义,构造函数创建需要转义, var reg2 = new RegExp(‘d‘) // /d/
-
元字符 d : 0-9之间的任意一个数字 d只占一个位置
w : 数字,字母 ,下划线 0-9 a-z A-Z _
s : 空格或者空白等
D : 除了d
W : 除了w
S : 除了s
. : 除了n之外的任意一个字符
: 转义字符
| : 或者
() : 分组
n : 匹配换行符
b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
^ : 限定开始位置 => 本身不占位置
$ : 限定结束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一个都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符
* : 0到多个
+ : 1到多个
? : 0次或1次 可有可无
{n} : 正好n次;
{n,} : n到多次
{n,m} : n次到m次
-
例子 var str = ‘1223334444‘;
var reg = /d{2}/g;
var res = str.match(reg);
console.log(res) //["12","23","33","44","44"]
var str =‘ 我是空格君 ‘;
var reg = /^s+|s+$/g; //匹配开头结尾空格
var res = str.replace(reg,‘‘);
console.log(‘(‘+res+‘)‘) //(我是空格君)
-
一般[]中的字符没有特殊含义 如+就表示+,但是像w这样的还是有特殊含义 的,里面不会出现两位数,()的提高优先级功能:凡是有|出现的时候,我们一定要注意是否有必要加上()来提高优先级;()的提高优先级功能:凡是有|出现的时候,我们一定要注意是否有必要加上()来提高优先级; var str1 = ‘abc‘;
var str2 = ‘dbc‘;
var str3 = ‘.bc‘;
var reg = /[ab.]bc/; //此时的.就表示.
reg.test(str1) //true
reg.test(str2) //false
reg.test(str3) //true
[12]表示1或者2 不过[0-9]这样的表示0到9 [a-z]表示a到z
例如:匹配从18到65年龄段所有的人
var reg = /[18-65]/; // 这样写对么
reg.test(‘50‘)
//Uncaught SyntaxError: Invalid regular expression: /[18-65]/: Range out of order in character class
//聪明的你想可能是8-6这里不对,于是改成[16-85]似乎可以匹配16到85的年龄段的,但实际上发现这也是不靠谱的
实际上我们匹配这个18-65年龄段的正则我们要拆开来匹配
我们拆成3部分来匹配 18-19 20-59 60-65
reg = /(18|19)|([2-5]d)|(6[0-5])/;
保留两位小数
- num.tofix(2)此时返回的是一个字符串,此时可以在前面加入 + ,那么会转化为数字
- Math.round(num*100)/100,此时也会返回两位小数
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|