正则表达式基础用法

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结尾
同时使用^ $要求字符串必须完全符合正则表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值