正则表达式(基础版)

1 正则表达式(规则表达式)
 '正则表达式是对字符串操作的一种逻辑公式',
就是事先定义好的一些特定字符,以及这些特定字符发组合,
组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑
  • 正则表达式是一个字符串
  • 表示一种规则
  • 用(有)自己特定的编写语法
  • 用于对其它字符串进行验证或者匹配
2 与其他语言的关系
  • 它是一独立的体系,不依赖其他任何编程语言,(但是由于过于它很强大),其它的编程语言里面种会提供对正则表达式的支持
  • 正则表达式在编程语言中的写法都是统一的(php,java,js...中的正则表达式都是一样的)
3 案例

※※生日的判断

<form action="http://www.baidu.com">
  <input type="text" pattern="\d{4}-\d{2}-\d{2}" required placeholder="请输出入生日"/>(*示例:1990-10-11)
  <input type="submit" value="提交"/>
</form>
效果.png
4 js中的正则

4.1 创建(RegExp)

1)构造器创建:

var r1 = new RegExp( "a" );
var r2 = new RegExp( "a","gim" )
new RegExp(pattern, attributes);

2)字面量创建(类比创建对象,都有两种方法)

  • 基本格式
var r = /字符串/;

说明:类比如果是字符串,则前后都要加( " " )
如果是对象前后加{ }
如果是数组前后加[ ];
如果是正则前后加/ /(界定符);
类比:使用对象的属性:用[]
当属性名是一个变量是,只能使用-[];
当正则表达式是一个变量是,则只能使用RegExp;

4.2 正则表达式的构成

  • 1)界定符
  • 2)原子(构成正则表达式的最基本的单位,必不可少)
  • 3)元字符(修饰原子的)
  • 4)模式修正符
    • I (忽略大小写)
    • G(全局匹配)
    • M(多行)
5 原子

5.1 一个字符

  • 表示一个字符
    A-Z,a-z,0-9基本的字符,它们只能表示一个字符
    /a/只能表示 a;
    /abc/只能表示 abc.

5.2 一类字符

  • 表示多个
    \d表示数字:一个数字,即0-9;
    \D表示:非数字;
    \s:空格;
    \S:非空格;
    \w:表示"字";
    \W:表示非"字";
6 元字符
元字符.png
  • 作用:修饰它前面的一个原子,只能修饰一个原子,并且必须在它的前面

6.1 开始&&结束

    1. ^ 开始(表示目标字符串应该以它后面的原子开始)
console.info(/f/.test("asfsd"));//true 
console.info(/^f/.test("asfs"));//false
console.info(/^f/.test("fasfsd"));//true
  • 2)$结束(表示目标字符串应该在它后面的原子结束)
console.info(/af$/.test("fasfsdf"))//false
console.info(/af$/.test("fasfsaf"))//true

6.2 数量的表示

  • 1)+ 表示前面的 一个原子要重复一个以上
console.info(/f+/.test("abcdeg"));//false
console.info(/f+/.test("abcdeffg"));//true
  • 2)? 表示前面的一个原子要重复0次或者一次
console.info(/f+/.test("abcdef"));//false
console.info(/f?/.test("abcdefg"));//true
console.info(/f?/.test("abcdeffg"));//true
  • 3){最大值,最小值}表示前面的一个原子要重复[最小值,最大值]次;
console.info(/\d{1,2}/.text("0"));//true
console.info(/\d{1,2}/.text("01"));//true
console.info(/\d{1,2}/.text("012"));//true
  • 4)\d{m}一定要出现的m次
console.info(/\d{3}/.text("0"));//false
console.info(/\d{3}/.text("00"));//false
console.info(/\d{3}/.text("000"));//true
console.info(/\d{3}/.text("0000"));//true
  • 5)\d{m,}前面的原子出现至少m次
console.info(/\d{3,}/.text("00"));//false
console.info(/\d{3}/.text("000"));//true
console.info(/\d{3}/.text("0000"));//true

6.3 转义的表示

    1. :作用改变字符的原来意思(和逻辑非内饰 相反的进行取结果)
    1. \b表示一个边界.空格
console.log(/\bis\b/.test("abc is land"));//true

-3) \B表示一个非边界

console.log(/is\B/.test("abcisland"));//true

6.4 常见的分组

  • 1)表示分组:把几个原子打包成一个大原子
console.log(/a(bc){2}/.test("abcc"));//false
console.log(/abc{2}/.text("abcc"));//true

6.5 逻辑的关系
格式:[原子1 原子2 原子3.....];
作用:[]内的原子集合中,必须要有一个

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

推荐阅读更多精彩内容

  • 正则表达式 关于正则表达式相信很多学计算机的人都听说过 尤其是做编程行业的人 那什么是正则表达式 正则表达式,又称...
    数据革命阅读 886评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,555评论 18 139
  • 什么是正则表达式呢? 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一...
    chenxiaoer阅读 403评论 0 1
  • 1.正则表达式介绍 正则表达式算起来也是一个很庞大的语言系统,在所有的开发语言中基本都支持正则表达式,它可以很方便...
    babybus_superdo阅读 2,557评论 3 6
  • 原理 正则引擎 为什么正则能有效,因为有引擎,这和为什么JS能执行一样,有JS引擎 正则的引擎大致可分为两类:DF...
    小小小超子阅读 1,522评论 0 2