正则表达式

一、正则的使用方式

1. 用构造函数

var patt = new RegExp("b\.1a","ig");

2. 字面量

var patt = /b.1a/ig;

二、与正则相关的方法

1. patt.test(str) 返回布尔值

2. str.match(patt)

(1) 非全局匹配, 返回匹配到的字符串
(2) 全局匹配,返回匹配到的所有字符串
(3) 如果有反向引用,则返回匹配到的字符串,及反向引用中括号里面的规则匹配到的字符串

3. str.replace(patt,新值)

三、正则的简单模式

格式: /^[字符范围]{量词}[字符范围]{量词}[字符范围]{量词}$/

1. 字符范围(字符类)

(1) [a-z]
(2) [^a-z]
(3) 原义字符:/a/
(4) 预定义类 \d \D \w \W

2. 量词

'* + ? {n} {n,} {n,m}'

3.边界: \b \s ^ $

四、正则的复杂模式

1. 分组

/black{3}/ /(black){3}/

2. 反向引用

var str = "we123co34me";
var patt = /(([a-z])\d{2})\w{2}/;
'1: e122: e'

3. 候选

/(red)|(black)/

4. 贪婪与惰性

/a{2,4}/ /a{2,4}?/

5. 前瞻

/bed(?=room)/ /bed(?!room)/

五、实例

demo1:

    var str = 'abc dd uf w3'; 
    var patt = /(\b\w+\b)/g;  
    var result =str.replace(patt,'8$18');
    console.log(result);  
    //结果: 8abc8 8dd8 8uf8 8w38

demo2:

// 匹配中文字符的正则表达式:[\u4e00 - \u9fa5]
// 匹配双字节字符(包括汉字在内) :[^\x00 -\xff]
   var str = '郑州有个abc少林寺 welcome'; 
   var patt = /[\u4e00-\u9fa5]/g; 
   var result =str.match(patt);
       console.log(result.length);

demo3:删除前后空格

    var str = ' welcome    '; 
    var patt = /^\s*(.*?)\s*$/; 
    var result =str.replace(patt,'$1');
          console.log(result);

demo4:

var str = '印度好看的电影:《摔跤吧爸爸》,还有《神秘巨星》,《起跑线》';
var patt = /(《.+?》)/ig;
// console.log(str.match(patt));
var newStr = str.replace(patt,"<span style=\"color:red;\">$1</span>");
    document.body.innerHTML = newStr;

demo5:

function getCookie(name){   
  // “card=12; c12=1234; card=12; user=qq; pw=123; card=1234”
  //  name = “card”
  // /(^| )card=([^;]*)(;|$)/
  var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
      if(arr=document.cookie.match(reg)) {
          return unescape(arr[2]);
      } else {
          return null;
      }
      getCookie("card");

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 正则表达式功能: 测试字符串的某个模式。例如对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信...
    DecadeHeart阅读 3,723评论 0 1
  • 正则表达式学习笔记 一篇记录了学习正则表达式的笔记。 1. 转义字符 在 HTMl 中转义字符以 & 符号开头,分...
    heyi_let阅读 3,110评论 0 0
  • //定义正则表达式的两种方式,在用构造函数的时候,有些地方是要加转义字符的。 //1、字面量。 var reg =...
    xiaobing0324阅读 3,385评论 0 0
  • 捕获组与反向引用 在正则表达式中,圆括号的一大作用是进行模式分组,而其还有另一个非常重要的作用,即定义捕获组。捕获...
    樱雨楼阅读 5,709评论 0 0
  • 有点复杂,是转载的文章 贪婪模式与非贪婪模式讲解 Javascript中的正则贪婪与非贪婪模式的区别是: 被量词修...
    胖先森阅读 2,047评论 0 1