美文网首页
正则总结

正则总结

作者: 我背井离乡了好多年 | 来源:发表于2022-07-15 11:42 被阅读0次

    一、
    <input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">

    二、

    使用 exec()
    exec() 方法是一个正则表达式方法。exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
    实例 1
    /e/.exec("The best things in life are free!");
    字符串中含有 "e",所以该实例输出为:e

    var patt = /e/;
    patt.test("The best things in life are free!");

    根据字符串生成正则表达式
    let str = ^[a-z]{1,3}$
    let reg = new RegExp(str,'g')
    三、

    "ab*":表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……);

    "ab+":表示一个字符串有一个a后面跟着至少一个b或者更多;

    "ab?":表示一个字符串有一个a后面跟着零个或者一个b;

    "a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。

    '.'可以替代任何字符:

    "a.[0-9]":表示一个字符串有一个"a"后面跟着一个任意字符和一个数字;

    "^.{3}$":表示有任意三个字符的字符串(长度为3个字符)

    ",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。

    你也可以在方括号里用''表示不希望出现的字符,''应在方括号里的第一位。

    (如:"%[^a-zA-Z]%"表示两个百分号中不应该出现字母)


    //校验是否全由数字组成

    /^[0-9]{1,20}$/
    ^ 表示打头的字符要匹配紧跟^后面的规则

    表示打头的字符要匹配紧靠前面的规则

    [ ] 中的内容是可选字符集

    [0-9] 表示要求字符范围在0-9之间

    {1,20}表示数字字符串长度合法为1到20,即为[0-9]中的字符出现次数的范围是1到20次。
    /^ 和 $/成对使用应该是表示要求整个字符串完全匹配定义的规则,而不是只匹配字符串中的一个子串。


    //校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

    /^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/
    ^[a-zA-Z]{1} 表示第一个字符要求是字母。

    ([a-zA-Z0-9]|[.]){4,19} 表示从第二位开始(因为它紧跟在上个表达式后面)的一个长度为4到9位的字符串,它要求是由大小写字母、数字或者特殊字符集[.]组成。


    //校验用户姓名:只能输入1-30个以字母开头的字串
    /^[a-zA-Z]{1,30}$/


    //校验密码:只能输入6-20个字母、数字、下划线
    /^(\w){6,20}$/
    \w:用于匹配字母,数字或下划线字符
    \d: 匹配单个数字,等价于[0-9]

    [^范围] 匹配任意一个除括号范围内的字符
    [^0-9] 匹配任意一个非数字字符
    重复字符 x(任意的单个字符)
    x? 匹配0个或者1个x
    x+ 匹配至少一个x字符
    let reg = /4+/g 字符串中至少有一个4 let reg = /\s+/g/ 匹配空格
    x* 匹配任意个x字符
    x{m,n} 匹配至少m个,最多n个字符,包括n
    x{n} 必须匹配n个字符
    (xyz)+ 小括号括起来的部分是当作单个字符处理
    空白字符
    \s 匹配任意单个的空白字符
    \S 匹配任意单个非空白字符
    '.'可以替代任何字符:
    在小括号中你可以使用管道符号 |,它代表或


    写到最后
    i - 代表忽略大小写
    m - 代表多行匹配
    g - 代表全局匹配(可以匹配多次)


    量词匹配

      • 匹配 0 次或多次
      • 匹配 1 次或多次
        ? - 匹配 0 次或 1 次
        {3} - 匹配 3 次
        {2,4} - 匹配 2、3 或 4 次
        {2,} - 匹配 2 次或多次

    至此 ^ 具有两个含义:

    如果用于正则表达式的开头,代表匹配字符串的开头
    如果用于中括号 [] 内部,则代表匹配非此字符


    1. let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
    

    最后一个括号的意思是:17位数字加上"数字或者大写的X或者小写的x",
    像这种是可以直接拼接的 /^(94\d{3}|95\d{2}$/g


    相关文章

      网友评论

          本文标题:正则总结

          本文链接:https://www.haomeiwen.com/subject/lxgqirtx.html