1,使用构造函数创建,更加灵活
var 变量 = new RegExp(‘正则表达式’,‘匹配模式’)
var reg = new RegExp(‘a’); 这个正则表达式用来检测一个字符串中是否含有a
第二个参数匹配模式:
i:忽略大小写
g:全局匹配模式
var reg = new RegExp('a')
var str = 'A'
console.log(reg.test(str)); //false
var reg = new RegExp('a','i')
var str = 'A'
console.log(reg.test(str)); //true
2,使用字面量创建,,更加简单
var 变量 = /正则表达式/匹配模式
var reg = /a/i
console.log(reg.test('abc')); //true
3,正则表达式中的规则
// | 表示或者的关系
var reg = /a|b/
console.log(reg.test('a')) //true
console.log(reg.test('b')) //true
// []表示或者的关系
var reg = /[ab]/
console.log(reg.test('a')) //true
console.log(reg.test('b')) //true
// [a-z] 表示任意小写字母
// [A-Z] 表示任意大写字母
// [A-z] 表示任意字母
// [^ ] 表示除了里面的字符,还有其他的
var reg = /[^ab]/
console.log(reg.test('ab')) //false
console.log(reg.test('abc')) //true
4,字符串和正则相关的方法
split() :
将一个字符串拆分为一个数组。
方法中可以传递正则表达式作为参数,这样方法将会根据正则表达式拆分字符串
默认全局匹配
var str = '1a2b3c4d5e6f7'
var result = str.split(/A-z/) //根据任意字母将字符串拆分
console.log(result); // [1,2,3,4,5,6,7]
search():
可以搜索字符串中是否含有指定的内容,有就返回第一次出现的索引,没有就返回-1。
可以接受一个正则表达式作为参数,根据正表达式检索字符串
默认检索第一次,即使设置全局也没用
var str = 'hello abc hello adc hello afc'
var result = str.search(/a[bdf]c/)
console.log(result) //6
match():
根据正则表达式,从一个字符串中提取符合条件的内容。
默认情况下match()只会找到第一个符合条件的内容就停止检索。
我们可以设置正则表达式魏全局匹配模式,这样就能匹配到左右的内容。
可以为一个正则表达式设置多个匹配模式,顺序无所谓。
match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个。
// 将字符串中所有的字母提取出来
var str = '1a2b3c4d5e6f7'
var result = str.match(/[A-z]/)
console.log(result) //['a']
result = str.match(/[A-z]/g)
console.log(result) //['a','b','c','d','e','f']
str = '1a2b3c4d5e6f7ABC'
result = str.match(/[a-z]/g)
console.log(result) //['a','b','c','d','e','f']
result = str.match(/[a-z]/ig)
console.log(result) //['a','b','c','d','e','f','A','B','C']
replace():
可以将字符串中指定内容替换成新的内容
参数:
1,被替换的内容,可以接受一个正则表达式作为参数
2,新的内容
默认只会替换第一个
var str = '1a2b3c4d5e6f7ABC'
var result = str.replace(/a/,'@')
console.log(result) //'1@2b3c4d5e6f7ABC'
str = '1a2a3a4d5e6f7ABC'
result = str.replace(/a/g,'@')
console.log(result) //'1@2@3@4d5e6f7ABC'
5,量词
通过量词可以设置一个内容出现的次数
量词只对它前边一个内容起作用
{n} 正好出现n次
{m,n} 出现m-n次
{m, } 出现m次以上
‘+’ 至少一个,相当于{1, }
‘*’ 0个或多个,相当于{0, }
‘?’ 0个或1个,相当于{0,1}
^ 表示开头,^a 表示以a开头
$ 表示结尾,a$表示以a结尾
同时使用^ $要求字符串必须完全符合正则表达式