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*/ 代表几位都可以。

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,099评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,828评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,540评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,848评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,971评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,132评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,193评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,934评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,376评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,687评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,846评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,537评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,175评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,887评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,134评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,674评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,741评论 2 351

推荐阅读更多精彩内容

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