• 正则表达式符号含义


    正则表达式

    1.元字符

    代码说明
    .匹配除换行符意外的任意字节
    \w匹配字母或者下划线或者汉字
    \W查找非单词字符。
    \s匹配任意的空白符
    \S查找非空白字符。
    \d匹配数字
    \D查找非数字字符。
    \b匹配的单词的开始或结束
    \B匹配非单词边界。
    ^匹配字符串的开始(在集合字符里面[^a]表示非的意思)
    $匹配字符串的结束

    2.放义字符

    代码/语法说明
    \W匹配任意不是字母,数字,下划线,汉字的字符
    \S匹配任意不是空白符的字符
    \D匹配任意非数字的字符
    \B匹配不是单词开头或结束的位置
    [^x]匹配除了x以外的任意字符
    [^aeiou]匹配除了aeiou这几个字母以外的任意字符

    3.限定字符(量词)

    代码/语法说明
    *重复零次或更多次
    +重复一次或更多次
    ?重复零次或一次
    {n}重复n次
    {n,}重复n次或更多次
    {n,m}重复n到m次
    n+匹配任何包含至少一个 n 的字符串。
    n*匹配任何包含零个或多个 n 的字符串。
    n?匹配任何包含零个或一个 n 的字符串。
    n{X}匹配包含 X 个 n 的序列的字符串。
    n{X,Y}匹配包含 X 或 Y 个 n 的序列的字符串。
    n{X,}匹配包含至少 X 个 n 的序列的字符串。
    n$匹配任何结尾为 n 的字符串。
    ^n匹配任何开头为 n 的字符串。
    ?=n匹配任何其后紧接指定字符串 n 的字符串。
    ?!n匹配任何其后没有紧接指定字符串 n 的字符串

    4.转义字符

    如元字符 . * \ 需要转换为. * \

    5.字符分歧

    字符分枝多用于满足不同情况的选择,用“|”将不同的条件分割开来,比如有些固定电话区号有三位,有些有四位,这个时候可以采用字符分枝

    例如:\d{3}-\d{8}|\d{4}-\d{8} 可以匹配两种不同长度区号的固定电话

    6.其他字符

    代码/语法说明
    \a报警字符(打印它的效果是电脑嘀一声)
    \b通常是单词分界位置,但如果在字符类里使用代表退格
    \t制表符,Tab
    \r回车
    \v竖向制表符
    \f换页符
    \n换行符
    \eEscape
    \0nnASCII代码中八进制代码为nn的字符
    \xnnASCII代码中十六进制代码为nn的字符
    \unnnnUnicode代码中十六进制代码为nnnn的字符
    \cNASCII控制字符。比如\cC代表Ctrl+C
    \A字符串开头(类似^,但不受处理多行选项的影响)
    \Z字符串结尾或行尾(不受处理多行选项的影响)
    \z字符串结尾(类似$,但不受处理多行选项的影响)
    \G当前搜索的开头
    \p{name}Unicode中命名为name的字符类,例如\p{IsGreek}
    (?>exp)贪婪子表达式
    (?-exp)平衡组
    (?im-nsx:exp)在子表达式exp中改变处理选项
    (?im-nsx)为表达式后面的部分改变处理选项
    (?(exp)yes|no)把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
    (?(exp)yes)同上,只是使用空表达式作为no
    (?(name)yes|no)如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
    (?(name)yes)同上,只是使用空表达式作为no

    7.常用的实用正则表达式整理

    ​ 只能输入数字:“1*$”。

    只能输入n位的数字:"^“d{n}$”。

    只能输入至少n位的数字:"^“d{n,}$”。

    只能输入m~n位的数字:。"^“d{m,n}$”

    只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”。

    只能输入有两位小数的正实数:“2+(.[0-9]{2})?$”。

    只能输入有1~3位小数的正实数:“3+(.[0-9]{1,3})?$”。

    只能输入非零的正整数:“^”+?[1-9][0-9]*$"。

    只能输入非零的负整数:“^”-[1-9][]0-9"*$。

    只能输入长度为3的字符:“^.{3}$”。

    只能输入由26个英文字母组成的字符串:“4+$”。

    只能输入由26个大写英文字母组成的字符串:“5+$”。

    只能输入由26个小写英文字母组成的字符串:“6+$”。

    只能输入由数字和26个英文字母组成的字符串:“7+$”。

    只能输入由数字、26个英文字母或者下划线组成的字符串:"^“w+$”。

    验证用户密码:"8"w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

    验证是否含有^%&’,;=?KaTeX parse error: Expected group after '^' at position 9: ""等字符:"[^̲%&’,;=?“x22]+”。

    只能输入汉字:“9{0,}$”

    验证Email地址:"^"w+([-+.]“w+)@"w+([-.]"w+)”."w+([-.]“w+)*$”。

    验证InternetURL:"^http://([“w-]+”.)+["w-]+(/[“w-./?%&=]*)?$”。

    验证电话号码:“^(”("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正确格式为:“XXX-XXXXXXX”、“XXXX- XXXXXXXX”、“XXX-XXXXXXX”、“XXX-XXXXXXXX”、“XXXXXXX"和"XXXXXXXX”。

    验证身份证号(15位或18位数字):"^"d{15}|“d{18}$”。

    验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:“01"~"09"和"1"~"12”。

    验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;“01"~"09"和"1"~"31”。

    利用正则表达式限制网页表单里的文本框输入内容:

    用正则表达式限制只能输入中文:οnkeyup="value=value.replace(/[^"u4E00-“u9FA5] /g,’’)” onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^"u4E00-“u9FA5]/g,’’))”

    用正则表达式限制只能输入全角字符: οnkeyup="value=value.replace(/[^"uFF00-“uFFFF]/g,’’)” onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^"uFF00-“uFFFF]/g,’’))”

    用正则表达式限制只能输入数字:οnkeyup="value=value.replace(/[^"d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^“d]/g,’’))”

    用正则表达式限制只能输入数字和英文:οnkeyup="value=value.replace(/["W]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^“d]/g,’’))”

    得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1


    1. 0-9 ↩︎

    2. 0-9 ↩︎

    3. 0-9 ↩︎

    4. A-Za-z ↩︎

    5. A-Z ↩︎

    6. a-z ↩︎

    7. A-Za-z0-9 ↩︎

    8. a-zA-Z ↩︎

    9. "u4e00-"u9fa5 ↩︎

  • 相关阅读:
    JavaScript常用函数
    警惕超范围采集隐私-移动APP违规十宗罪
    【数字信号处理】离散傅里叶变换(DFT)的物理意义
    QSS 自定义QLineEdit
    Hard negtive node(硬负样本节点)与 Easy negative nodes(简单样本节点)
    力扣每日一题 神奇字符串
    EFCore学习笔记(8)——关系
    紫光同创FPGA实现UDP协议栈网络视频传输,基于YT8511和RTL8211,提供4套PDS工程源码和技术支持
    ui_cb.c
    k8s——Pod进阶(资源限制和探针)
  • 原文地址:https://blog.csdn.net/qq_56098191/article/details/128123895