正则表达式学习(二)

全局和大小写同时匹配

  var re = new RegExp("a","gi");

  var re1 = /a/gi;

.exec()使用子匹配,用()来创建子匹配

  var str = "Ubuntu 8.10";//取出主版本号和次版本号

  var re = /^[a-z]+\s+(\d+)\.(\d+)$/i;//这里的两个(\d+)就是子匹配

  var arr = re.exec(str);//当字符串不匹配re时返回null

  alert(arr[0]);//完整的str

  alert(arr[1]);//8

  alert(arr[2]);//10

字符串.replace(re)用来替换空白字符

  var str = "some some      \tsome\t\f";

  var re = /\s+/g;

  alert(str.replace(re,"#"));//some#some#some#

字符串.split(re)用来替换不同的分隔符

  var str = "a_bc-d";

  var re = /[^a-z]/i;//匹配除字母外所有字符

  alert(str.split(re));//返回["a","bc","d"]

字符串.match(re)匹配并返回结果数组

  var str = "one two three four";

  var re = /\b[a-z]*\b/gi;  //\b表示单词边界

  alert(str.match(re));  //one,two,three,four

re.source属性 返回正则表达式"模式"的文本的复本

  var re = /[a-z]/i;

  alert(re.source);  //输出结果 [a-z]

  alert(re);      //输出结果 /[a-z]/i,相当于re.toString

re.lastIndex属性 指被查找字符串中下一次成功匹配的开始位置,默认值-1,可被exec和test方法修改

  var re = /[A-Z]/g;

  var str = "Hello,World!";

  var arr = re.exec(str); //H

  alert(re.lastIndex);  //1

  arr = re.exec(str);  //W

  alert(re.lastIndex);  //7

当匹配失败(后面没有匹配),或lastIndex值大于字符串长度时,再执行exec方法会将lastIndex设为0(开始位置)

  var re = /[A-Z]/;

  var str = "Hello,World!";

  re.lastIndex = 120;

  var arr = re.exec(str);

  alert(re.lastIndex);//0

用re.exec()+re.lastIndex获取字符串中的数字

1
2
3
4
5
6
7
8
9
10
11
var String  = "";
var re = /\d+/g;
var str="adf0sdf1asdf2sff3asdfas4asfdafd5asfasf6fsdafasf7asdfas8asdf9asa";
String = String + re.exec(str);
while(re.lastIndex != 0){
    var arr = re.exec(str);
    if(arr != null){
        String = String + arr;
    }  
}
alert(String); //0123456789

  

 

 

posted @   双子家的咸蛋蛋  阅读(147)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示