正则表达式要点

  • 测试匹配

    1. RegExp对象方法

      • RegExp对象.test(e:String)->Bool, 成功匹配返回true,匹配失败返回False
      • RegExp对象.exec(e:String)->Array,在字符串中执行匹配搜索,返回结果数组(原字符串[0],分组字符串[n],…,),不匹配则返回null
    2. String对象方法

      • String对象.match(e:RegExp)->String,返回 pattern 中的子串或 null
      • String对象.replace(e1:RegExp,e2:String)->String,若成功匹配则返回替换后的字符串,不匹配则返回原字符串(注意:不改变原字符串)
      • String对象.search(e1:RegExp)->Number,返回开始匹配的位置 - String对象.split(e1:RegExp)->Array,返回字符串按指定 pattern 拆分的数组
  • RegExp静态属性(取值前需先测试匹配)

    • RexExp.$1 ,返回第一个匹配的分组
  • 两个实践

    利用分组可用$x表示以及replace返回值的性质实践特定的功能

    1.打印选定的分组
    2.交换文本顺序

var pattern =/8(.*)8/;
var str = '8afaqfa8';
document.write(str.replace(pattern,'<strong>$1</strong>'));
var pattern =/(.*)\s(.*)/;
var str = 'gol baidu';
document.write(str.replace(pattern,'$2 $1'));
  • 贪婪与惰性
    • ‘+’‘*’等符号表示贪婪
    • ‘?’表示惰性(禁止贪婪)
var pattern = /[a-z]+?/;
var str = 'abcdefjwxyz'; 
var result = str.replace(pattern, 'xxx'); 
alert(result);  //只匹配第一个a,即遇到匹配项就停止匹配

var pattern = /8(.+?)8/g;
var str = 'This is 8google8, That is 8google8'; 
var result = str.replace(pattern,'<strong>$1</strong>'); document.write(result);

var pattern = /8([^8]*)8/g; //另一种禁止贪婪 
var str = 'This is 8google8, That is 8google8';
var result = str.replace(pattern,'<strong>$1</strong>'); document.write(result);
  • ^的用法
    • [^0-9]:^在方括号内表示“非”
    • ^[0-9]:^在方括号外表示强制从头开始匹配
var pattern = /g[^0-9]*gle/; 
var str = 'google'; 
alert(pattern.test(str));
  • 前瞻捕获
    利用?=符号,指定后面跟gle的goo,注意:完全没有分组性质
var pattern = /(goo(?=gle))/; 
var str = 'google'; 
alert(pattern.exec(str));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值