JavaScript正则表达式入门(一)

已被阅读 1258 次 | 文章分类:javascript | 2018-03-13 19:41

RegExp:是正则表达式(regular expression)的简写。正则表达式是通过自定义的一个字符或者字符串规则,利用正则方法从文本中匹配得到想要的内容;该文主要以实例简单讲解RegExp对象的修饰符、方法、以及支持以RegExp对象作为参数的string方法;

一:创建一个RegExp表达式:创建一个正则表达式有两种方法直接法和构造函数的方法

                                            
 (1): /pattern/attributes
    (2): new RegExp(pattern, attributes);
                                            
                                        

二:RegExp表达式修饰符

i:区分大小写的匹配,找到第一个匹配值立即停止; g:全文本匹配,匹配到第一个继续匹配,直到查询完整个文本; m:可以执行多行匹配;

                                            
<script type="text/javascript">
   var str="Welcome to xiaobaiGIS";
   var regexp1=/o/i;
   console.log(str.match(regexp1));
 </script>
                                            
                                        

结果:["o"]

                                            
<script type="text/javascript">
   var str="Welcome to xiaobaiGIS";
   var regexp1=/o/g;
   console.log(str.match(regexp1));
 </script>
                                            
                                        

结果:["o","o","o"]

三:RegExp表达式对象的方法(方法的参数是字符串)

(1) test(stringObj): 该方法用于检测一个字符串是否匹配某个模式.若匹配返回true,不匹配返回false

                                            
<script type="text/javascript">
    var str = "Welcome to xiaobaiGIS";
    var regexp1 = new RegExp("xiaobaiGIS","i");
    console.log(regexp1.test(str));
</script>  //结果:true
                                            
                                        

(2) esec(stringObj): 该方法exec() 方法就是用来检索字符串中正则表达式的匹配,如果匹配到了那么就返回一个存放有结果的数组,如果没有匹配到就返回一个null

                                            
<script type="text/javascript">

    var str = "Welcome to xiaobaiGIS";  
    var regexp1 = /GIS/g; 
    document.write(regexp1.exec(str));
</script>  //结果:["GIS"]
                                            
                                        

(3) compile(stringObj): 该方法用于检测一个字符串是否匹配某个模式.若匹配返回true,不匹配返回false

                                            
<script type="text/javascript">
  var str = "Welcome to xiaobaiGIS,GIS is nice";  
  var regexp1 = /(xiaobai)?GIS/g; 
  regexp1.compile(regexp1);
  console.log(str.replace(regexp1,"popstar"));
</script>
                                            
                                        

结果:Welcome to popstar,popstar is nice; 其中(xiaobai)?是匹配任何包含零个或一个 "xiaobai" 的字符串,在这里的意思便是,匹配满足xiaobaiGIS和GIS的片段,后续会有元字符的教程;

四:将RegExp表达式对象作为参数的string方法

(1) string.match(RegExpObj): 该方法可在字符串内检索指定的值,找到一个或多个正则表达式的匹配,返回匹配值的数组 该数组的内容依赖于 regexp 是否具有全局标志g,如果有则返回所有匹配值,若没有则返回第一个匹配值

                                            
<script type="text/javascript">
  var str = "Welcome to xiaobaiGIS,GIS is nice";
  var regexp1 = /GIS/;
  console.log(str.match(regexp1) + "</br>");
  var regexpG = /GIS/g;
  console.log(str.match(regexpG));
</script>  //结果:["GIS"]

      ["GIS","GIS"]
                                            
                                        

(2) string.replace(RegExpObj): 该方法replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;

                                            
<script type="text/javascript">
  var str = "Welcome to xiaobaiGIS,GIS is nice";  
  console.log(str.replace(/GIS/g, " a"))
</script>  //结果:Welcome to xiaobai a, a is nice
                                            
                                        

(3) string.search(RegExpObj)): 该方法search() 方法用于检索字符串中指定的子字符串,返回指定子字符串的起始索引位置

                                            
<script type="text/javascript">
  var str = "Welcome to xiaobaiGIS,GIS is nice";  
  console.log(str.search(/GIS/, " a"))
</script>  //结果:18
                                            
                                        

(4) string.split(RegExpObj)): 该方法用于把一个字符串分割成字符串数组

                                            
<script type="text/javascript">
     var str = "Welcome to xiaobaiGIS,GIS is nice";
     console.log(str.split(/\s+/))
 </script>  //结果:["Welcome","to","xiaobaiGIS","GIS","is","nice"]
                                            
                                        

QQ:3410192267 | 技术支持 微信:popstarqqsmall

Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号