js 正则表达式

  正则表达式

每种数据都有自己的规则,正则表达式可以描述这个规则,也可以检测数据是否满足这个规则。所以正则表达式就是专门用来校验数据而产生的语法,有如下几个作用;

校验数据

提取数据

替换数据

创建正则表达式

JS中提供两种创建正则表达式的方法,字面量方式、构造函数方式

(1)字面量方式:

var reg=/\d/;    //\d是正则表达式中的元字符 用来表示这是0-9之间的任何一个数字

(2)构造函数方式:

var reg = new RegExp("\\d{6}");

校验数据

正则表达式.test(字符串)        //正则表达式提供的方法

var reg=/\d/;

var str='1';

var res= reg.test(str);  //测试字符是否满足正则表达式规则,如果测试到有,返回true

      字符串.search(正则表达式)        //字符串提供的方法


  var reg=/\d/

  var str="asdadsa4dasd"

  var res=str.search(reg)// 验证方法 找到返回下标 找不到返回-1

    //在字符串中找满足正则表达式的那一部分

区别:

.test()方法是正则表达式提供的,.search()是字符串提供的,

.test()方法返回布尔值,search()返回下标

提取数据

正则表达式.exec(字符串)

  var reg=/\d/

  var str="asdadsa455dasd"

  var res=reg.exec(str)  //字符串中满足正则表达式的部分提取出来

//返回一个数组,内容是4

//遇到满足条件的就返回,所以只提取到4


字符串.match(正则表达式)

  var reg=/\d/

    var str="asd2adsa455dasd"

    var res=str.match(reg)//字符串中满足正则表达式的部分提取出来

    console.log(res[0])


区别:

  正则表达式.exec(字符串),正则表达式提供的方法

  字符串.match(正则表达式) 字符串的方法

相同:

  都返回一个数组,只要匹配到符合规则的数据就返回

替换数据

字符串.replace(正则表达式,新的内容)

var reg=/\d/

    var str="1还是一"

    var ment="*"

    var res=str.replace(reg,ment)

    console.log(res)

    //返回:*还是一

正则表达式中的特殊字符

元字符:用来代表数据中的规则;

这里列举一些常用的元字符;

\d 代表任意一个数字

\D 代表任意一个非数字

\w 代表任意一个数字、字母、下划线

\W 代表任意一个非数字 字母 下划线

. 代表任意一个字符 统配

\s 代表任意一个空格

\s 代表任意一个非空格


还可以使用一些别的字符,例如:


var reg=/bc/ //表示字符bc

var reg=/[1-9]/    //表示数字1-9

var reg=/[a-z]/    //表示字母a-z


当正则表达式是:var reg=/\d/

字符串是 var str="ab11a"

如果使用exec或match提取只可以提取到一个1,如何将两个1都提取出来呢?

这里需要给正则表达式添加修饰符。

  var str="abd55sad448da";

//修饰符:{提取个数}

var reg=/\d{2}/  //表示提取两位的任意数字

var res=str.match(reg)

    console.log(res)

    //返回 55  可以一次提取两个数字。

reg=/\d{n}/  代表规则为 n个任意字符

reg=/\d{n,m}/ 代表最少n个字符,最多m个字符

reg=/\d{n,}/  代表最少n个,最多不限

reg=/\d+/  代表至少一位  至多不限制

reg=/\d?/ 代表最多一位(0位可以匹配到),再多就匹配不到了

reg=/\d*/ 代表几位都可以。

万能匹配  .* 可以匹配到任意内容

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

推荐阅读更多精彩内容

  • 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在""后面的字符不按原来意义解释,如/b/匹配字符"b",...
    Allan要做活神仙阅读 561评论 0 0
  • 正则表达式(Regular Expression)是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系...
    贪睡de狮子阅读 330评论 0 0
  • 1.创建JS正则表达式 let reg1 = /abc/g; let reg2 = new Reg('abc', ...
    流氓兔之夫阅读 634评论 0 3
  • 一、 什么是正则表达式 1、 概述 以上代码中,在判断时,用到了 标准库中 string 对象的indexOf()...
    宠辱不惊丶岁月静好阅读 561评论 0 1
  • day10-正则表达式 用于匹配字符串中字符组合的模式,主要用来验证客户端的输入数据。用户填写完表单单击按钮之后,...
    learninginto阅读 374评论 0 8