首页 > 其他分享 >正则表达式

正则表达式

时间:2022-10-25 18:02:53浏览次数:50  
标签:console log 正则表达式 result str var reg

概念

正则表达式可以用来匹配字符串,可以实现字符串的截取或者按规则替换和验证字符串的内容

在js中创建正则表达式对象

var reg = new RegExp("123");
var reg = /123/;//简写形式

正则表达式语法

var str = "123";
        var reg = /123/;
        //与str匹配,返回布尔值,相同返回true,不同返回false
        var result1=reg.test(str);//true
        //与str匹配,返回匹配值,相同返回数组,下标[0]是匹配值,不同返回null
        var result2=reg.exec(str);//'123'
        console.log(result1);
        console.log(result2);
var str1 = "x";
        var str2 = "2b"
        var reg = /[a-z]/;//[]表示匹配的范围,用-表示连接范围,[a-z]表示范围是一位的小写字母
        var result1=reg.test(str1);//true
        var result2=reg.exec(str1);//'x'
        console.log(result1);
        console.log(result2);
        var result3=reg.test(str2);//true,没有限制的情况下会跟字符串全部内容匹配,只要有一个符合就算对
        var result4=reg.exec(str2);//'b',说明只匹配一位
        console.log(result3);
        console.log(result4);
var str1 = "b";
        var str2 = "2b"//哪怕是"cb"结果也是错的
        var reg = /^[a-z]$/;//以一个小写字母开头,以一个小写字母结尾,将匹配对象的位数限制在了一位,超过一位就是错的
        var result1=reg.test(str1);//true
        var result2=reg.exec(str1);//'b'
        console.log(result1);
        console.log(result2);
        var result3=reg.test(str2);//false,只匹配一位,且必须是小写字母,str2有两位
        var result4=reg.exec(str2);//null
        console.log(result3);
        console.log(result4);
        var reg1 = /^[a-z][0-9]$/;//以一个小写字母开头,以一位数字结尾
        var str3="c3"//"c34"就是错的
        var result5=reg1.test(str3)
        var result6=reg1.exec(str3)
        console.log(result5)//true
        console.log(result6)//'c3'
var reg1 = /^[a-z]{2}$/;//{2}表示匹配两位,有^$就必须是两位
        str1="ac";//"acc"或者"a"都是错的,如果没有^$的话"acc"就是对的
        var result1=reg1.exec(str1);
        console.log(result1);//'ac'

        var reg2 = /^[a-z]{1,3}$/;//匹配1到3位
        str2="acc";//"a"或者"ac"都是对的
        var result2=reg2.exec(str2);
        console.log(result2);//acc
            \d   数字
            \D   非数字

            \w   数字,字母,下划线
            \W   非 数字,字母,下划线

            \s   空格
            \S   非空格

            .    非换行
var reg1 = /^[a-z0-9]{2}$/;//想扩大范围就直接加
        str1="2b";
        var result1=reg1.exec(str1);
        console.log(result1);//'2b'

        var reg2 = /^[a-z0-9A-Z_]{1,5}$/;
        str2="a9C_";
        var result2=reg2.exec(str2);
        console.log(result2);//'a9C_'

        var reg3 = /^\w{1,5}$/;//用\w表示数字字母下划线
        str3="a9C_";
        var result3=reg3.exec(str3);
        console.log(result3);//'a9C_'
        var reg = /^\s$/;//表示一个空格或换行
        var str = " ";//如果"  "两个空格就是错的,因为\s只表示一个空格。改成\s+就是对的
        var result = reg.test(str);
        console.log(result);//true
        var reg = /^[0-9]{1,}$/;//一位到多位,/[0-9]+/也是一样的效果,+这种更常用
        var str = "13216564984";
        var result = reg.test(str);
        console.log(result);//true
        
        var reg = /^\d+$/;//数字可以用\d代替
        var str = "13216564984";
        var result = reg.test(str);
        console.log(result);//true
var reg = /^\d?$/;//?表示0位到1位,即可有可无,总体表示0位或一位数字
        var str1 = "";
        var result1 = reg.test(str1);
        console.log(result1);//true
        var str2 = "1";//"12"就是错的
        var result2 = reg.test(str2);
        console.log(result2);//true
var reg = /^\d*$/;//*表示0到正无穷
        var str = "132165649844491";//可以一直写下去
        var result = reg.test(str);
        console.log(result);//true
        var reg = /^.$/;//除了什么都不输入和输入换行,输入什么都行
        var str = " ";//""什么都不输入和\n换行是错的," "空格是对的
        var result=reg.test(str);
        console.log(result);//true
var reg = /^\.$/;
    /*除了一些有意义的字符如\d,\s,\w等,\就是转义字符,后面的字符会失去原有的意义
    如\.就是一个字符'.'
    */
        var str = " ";//.不再发挥原有的效果
        var result=reg.test(str);
        console.log(result);//false

邮箱验证

var str = "[email protected]";
        var reg = /^\w{3,18}@\w{2,8}\.com$/;
        if(reg.test(str)){
            console.log("验证成功");
        }else{
            console.log("验证失败");
        }

字符串替换

var str="123abc456DEF";
        var reg=/[a-z]/gi;
        //g是全局匹配,i是不区分大小写匹配,没有写g就只匹配一个
        //也可以写成[a-zA-Z]g
        //也不要加^$
        var result=str.replace(reg,"");//将符合reg的内容替换成空
        console.log(result);//123456

截取字符串

var str="2022-10-25";
        var reg=/^(\d{4})-(\d{2})-(\d{2})$/;
        /*
        exec返回的是一个数组,如果只是\d{4}-\d{2}-\d{2},那么返回一个只有一个元素的数组
        如果用()分组,就能分成若干个元素
        */
        var result=reg.exec(str);
        console.log(result[0]);//2022-10-25
        console.log(result[1]);//2022
        console.log(result[2]);//10
        console.log(result[3]);//25

标签:console,log,正则表达式,result,str,var,reg
From: https://www.cnblogs.com/ben10044/p/16825738.html

相关文章

  • 牛客BM76(正则表达式匹配)
    BM76正则表达式匹配具体实现:1.确定dp数组以及下标的含义dp[i][j]代表s中以i结尾的子串和p中j为结尾的子串是否匹配2.状态转移(1)p[j]为普通字符:匹配的条件是前面的字符......
  • 正则表达式
    一、正则表达式    是用来描述字符串内容格式,使用它通常用于匹配一个字符串的内容是否符合格式要求。1.[]:表示一个字符,该字符可以是[]中指定的内容例如:[a......
  • JavaScript学习--正则表达式
       /[^0-9]/g表示除了0-9其他所有的更多在https://www.runoob.com/regexp/regexp-tutorial.html ......
  • 正则表达式
    正则表达式(regularexpression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。构......
  • Python正则表达式(Python RegEx)
    Python正则表达式目录Python正则表达式快速参考函数详解match()search()捕获和分组Match对象sub()compile()findall()finditer()split()参考博客与示例代码快速参考常用......
  • 【正则】578- 1小时真正掌握正则表达式
    1.基本匹配正则表达式其实就是在执行搜索时的格式,它由一些字母和数字组合而成.例如:一个正则表达式 ​​the​​​,它表示一个规则:由字母​​t​​​开始,接着是​......
  • day16 正则表达式 & 反射 & Java内存模型(JMM)
    day16class1)获取一个类的所有信息(变量、方法、构造方法)2)创建类对象newInstance()Field1)访问变量或给变量赋值Method1)执行具体类对象的指定方法3.Method(获取方法对......
  • day51-正则表达式02
    正则表达式025.4正则表达式语法025.4.6捕获分组详见5.3.3例子packageli.regexp;importjava.util.regex.Matcher;importjava.util.regex.Pattern;//演示分......
  • jsp页面中的正则表达式--主要用于js判断文本格式
    一、方括号[]举例:二、^三、元字符举例的话,就可以这么说,要实现要表示整数的话:[]就表示输入的文本框里面的数字的第一位,可以这么写--->[1-9]然后已知\d表示的与[0-9......
  • 正则表达式
    正则表达式正则表达式的概述正则表达式(RegularExpression)是一个描述字符模式的对象,用于对字符串进行匹配,一般用在有规律的字符串匹配中;常用于表单验证以及相关的......