正则表达式用于定义一些字符串的规则,计算机可以根据正则表达式,来检查一个字符串是否符合规则,或者将字符串中符合规则的内容提取出来
-
创建正则表达式的对象
- 语法: var 变量 = new RegExp('正则表达式','匹配模式');
- 在构造函数中可以传递一个匹配模式作为第二个参数,可以是
- i 忽略大小写
- g 全局匹配模式
- 使用typeof检查正则对象,会返回object
- 正则表达式的方法
- test() 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合则返回true,不符合返回false
var reg = new RegExp('a'); //定义正则表达式 var str = 'a'; console.log(typeof reg); //检查表达式类型 console.log(reg.test(str)); //字符串中只要存在a,就返回true,不存在返回false,严格区分大小写 console.log(reg.test('bbbx')); console.log(reg.test('dha')); console.log(reg.test('A')); console.log('--------'); var cc = new RegExp('c', 'i'); console.log(cc.test('aC'));
- test() 使用这个方法可以用来检查一个字符串是否符合正则表达式的规则,如果符合则返回true,不符合返回false
2.使用对象字面量来创建正则表达式
- 语法:var 变量 = /正则表达式/匹配模式;
- 使用字面量的方式创建更加简单,但使用构造函数创建更加灵活
- [ ]里的内容也是或的关系,即[ab] == a|b
- [ ^ ] 除了括号内的内容,剩下都可以
- [a-z] 任意小写字母
- [A-Z] 任意大写字母
- [A -Za- z] 任意字母
- [0-9] 任意数字
- reg = /a[bde]c/ 检查一个子字符串是否含有abc 或adc 或aec


3.字符串和正则相关方法
-
split()
-
可以将一个字符串拆分为一个数组
-
方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串
-
eg:根据任意字母来拆分字符串
var str='32tfd74jsd82kd4'; var result=str.split(/[A-z]/); console.log(result);
-
- search()
- 可以搜索字符串中是否含有指定内容
- 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
- 它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
//搜索字符串中是否含有ab或者ac var str='heal ab djads abss aced'; console.log(str.search(/a[bc]/));
- match()
- 可以根据正则表达式,从一个字符串中将符合条件的内容提取出来
- 默认情况下我们的match只会找到第一个符合要求的内容,找到以后就停止检索,我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
- 可以为一个正则表达式设置多个匹配模式,且顺序无影响
- 量词
- 通过量词可以设置一个内容连续出现的次数
- 量词只对第一个内容起作用
- {n} 正好出现n次
- {m,n} 出现m-n次
- {m,} 出现m次以上
- + 至少一个,相当于{1,}
- * 0个或多个,相当于{0,1}
- ? 0个或1个,相当于{0, 1}
- ^ 表示开头(检查一个字符串是否以a开头,reg=/^a/
- $ 表示结尾 (检查一个字符串是否以a结尾,reg=/a$/
- . 表示任意字符
- 在正则表达式中使用 \ 来作为转义字符,用 \. 来表示 . , \\ 表示 \,使用构造函数时,由于它的参数是一个字符串,而\是字符串中的转义字符,如果要使用\则需要使用\\来代替
注:如果想表示以a开头或者以a结尾,reg=/ ^a|a$ /

- \w 任意字母、数字、_
- \W 除了字母、数字、_
- \d 任意的数字[0-9]
- \D 除了数字[^ 0-9]
- \s 空格
- \S 除了空格
- \b 单词边界
- \B 除了单词边界
正则表达式规范练习
- 正确的手机号
- 正确的qq邮箱
1万+

被折叠的 条评论
为什么被折叠?



