js正则表达式

正则表达式的作用:专门用来匹配字符串
正则是一个引用数据类型:typeof 正则----->"object"

创建正则表达式的方法

//方式一:
var reg=new RegExp("匹配的字符串","匹配模式");
//方式二:
var reg=/匹配的字符串/

正则表达式的常用方法

str.match(reg)

按照指定的正则匹配,匹配出str中的符合规则的字符,如果没有则返回null

var str = 'h2ea1ven_';
var reg = /./g;
console.log(str.match(reg))//["h", "2", "e", "a", "1", "v", "e", "n", "_"]

str.replace(字符串1/正则,字符串2/fn($1,$2…))

$1、$2、…、$99指的是通过正则匹配到的第 1 到第 99 个子表达式相匹配的文本。

  var str = 'ddeeff';
  var reg = /(\w)\1(\w)\2(\w)\3/
  console.log(str.replace(reg, function ($1, $2, $3) {
       return $3 + $3 + $2 + $2 + $1 + $1
  }));//ffeedd

  var name = '"a", "b"';
  name.replace(/"([^"]*)"/g, "'$1'");//"a", "b"

reg.exec(str)

检索字符串中指定的值。返回找到的值,并确定其位置 ,reg对象的lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。

var str = "Visit W3School"; 
var patt = new RegExp("W3School","g");
console.log(patt.exec(str));//返回值是数组
console.log(patt.lastIndex);//14

reg.test(str)

检验字符串中有没有reg对应的规则,如果有,则返回true,如果没有,则返回false

正则表达式修饰符

修饰符的顺序是可以颠倒的

  1. i 忽略大小写 ignorecase
  2. g 全局匹配 global

表达式

只能匹配到一个字符

  1. [abcd] 表示匹配abcd中的任何一个数据
  2. [^abcd] 表示匹配除了abcd的任何数据
  3. [a-z] 表示匹配a-z中的任何一个数据
  4. [A-Z] 表示匹配A-Z中的任何一个数据
  5. [A-z] 表示匹配A-z中的任何一个数据

元字符

实质也是表达式,也只能匹配到一个字符

  1. \w ---->[0-9A-z]
  2. \W ----->[^\w]
  3. \d ---->[0-9]
  4. \D---->[^\d]
  5. \s ----> 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
  6. \S---->[^\d]
  7. . (点) ---->[^\n] 匹配除了换行符的所有任意一个字符

量词

表示数量,尽可能多匹配字符(贪婪模式),在量词后面加上?就能够取消贪婪模式

  1. {x} ---->匹配x个字符
  2. {x,y}---->匹配[x,y]个字符
  3. {x,}---->匹配至少x个字符
  4. x±—>匹配至少一个字符
  5. x*---->匹配至少0个字符
  6. x?---->匹配[0,1]个字符
var str = 'h12ea3422323v1e34n';
var reg = /\d{2,3}?/g;//匹配连续两个是数字的字符串,?取消了贪婪模式
console.log(str.match(reg));//["12", "34", "22", "32", "34"]

形容词

修饰字符n(断言)

  1. n$---->匹配到在结尾位置的字符n
  2. ^n---->匹配到在开头位置的字符n
  3. x(?=n)---->匹配到后面紧跟着字符n的x
  4. x(?!n)---->匹配到后面没有紧跟着字符n的x
  5. (?<=n)x---->匹配到前面紧跟着字符n的x
  6. (?<!n)x---->匹配前面没有紧跟着字符n的x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值