JavaScript 正则的组成

🌙
手机阅读
本文目录结构

正则的组成

var reg = /\d/;//->包含一个0-9之间的数字
console.log(reg.test("zhu"));//->false
console.log(reg.test("zhu1"));//->true

var reg2 = /^\d$/;//->只能是一个0-9之间的数字
console.log(reg2.test("9"));//->true
console.log(reg2.test("012"));//->false

正则是由元字符组成的:

每一个正则表达式都是由元字符和修饰符组成的

什么是[元字符]:在//之间具有意义的一些字符

  • 1、具有特殊意义的元字符

    • :转义字符,转译后面字符所代表的含义

    • ^:以某一个元字符开始

    • $:以某一个元字符结尾

    • \n:匹配一个换行符

    • .:除了\n以外的任意字符

        var reg = /^0.2$/;//->以0开头,以2结尾,中间可以是除了\n的任意字符
        console.log(reg.test("0.2"));//->true
        console.log(reg.test("0和2"));//->true
        console.log(reg.test("0-2"));//->true
        console.log(reg.test("0sdhfohsdf-2"));//->false
      
        reg = /^0\.2$/;//->以0开头,以2结尾,中间是.的字符串;
        console.log(reg.test("0.2"));//->true
        console.log(reg.test("0-2"));//->false
      
    • ():功能一:分组 ->把一个大正则本身划分成几个小的正则

        var reg1 = /^\d+zhu\d+$/;
        var reg2 = /^(\d+)zhu(\d+)$/;
      
        //匹配
        console.log(reg1.test("2zhu3"));//true
        console.log(reg2.test("2zhu4"));//true
        //捕获
        console.log(reg1.exec("2zhu3"));//["2zhu3", index: 0, input: "2zhu3"]
        console.log(reg2.exec("2zhu4"));//["2zhu4", "2", "4", index: 0, input: "2zhu4"]
      
      • 功能二:改变|的优先级;功能:替换,“或"操作字符具有高于替换运算符的优先级,使得"m|food"匹配"m"或"food”。若要匹配"mood"或"food",请使用括号创建子表达式,从而产生"(m|f)ood"。
    • x|y:x或者y中的一个

    • ^x|yz$:x开头、yz结尾、x开头并且yz结尾、三种都可以

    • \d:一个0-9之间的数字 \D:除了0-9之间的数字以外的任何字符

    • \b:匹配一个边界符

    • \w:数字、字母、下划线中的任意一个字符 [0-9a-zA-Z_]

    • \s:匹配一个空白字符 空格、一个制表符、换页符…

  • 2、代表出现次数的量词元字符

    • *:出现零到多次

    • +:出现一到多次

    • ?:出现零次或者一次

    • {n}:出现n次

    • {n,}:出现n到多次

    • {n,m}:出现n到m次

        var reg = /^\d+$/;
        console.log(reg.test("2015"));//->true
      

一个简单的验证手机号的正则:11位数字,第一位是1

var reg = /^1[3|4|5|7|8]\d{9}$/;//第一位以1开始,第二位可以是34578中的任意一位,后面再加9个数字;
console.log(reg.test("12345678901"));//false
console.log(reg.test("13856487589"));//true
console.log(reg.test("12114567895"));//false

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了