zoukankan      html  css  js  c++  java
  • 前端正则表达式

    在前端的开发中很少人会用到正则表达式(RegExp)去写函数,其实正则表达式的效率会比一般的逻辑代码要快很多,但是它也有一个特点就是不容易掌握。

    正则引擎主要可以分为两大类:一种是DFA,一种是NFA。

    给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
    1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
    2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。
     
     正则表达式的图形化工具:http://zhoushengfe.com/rline.html
     

    一个正常的正则表达式的语法应该是  

    1
    /正则表达式主体/修饰符

    在字符串方面RegExp有两个方法:

    search()     用于检索字符串中指定的子字符串,或检索与RegExp相匹配的子字符串并返回子串的起始2位置。

    replace()    用于字符串中一些字符替换另一些字符,或替换一个与正则表达式相匹配的子串。

    match()      方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

    test()          方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

    exec()        方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

    创建方式局我了解的话有两种:

    1、

    1
    var newregexp = new RegExp("//此处写入表达式的式子","此处写入g或i或gi或m,主要写入是是否全局匹配");

    2、

    1
    var newregexp = /  表达式  /gi

      

    一些常见的标识符:

    元字符:

    1
    2
    3
    4
    d  查找数字。
    s  查找空白字符。
      匹配单词边界。
    uxxxx  查找以十六进制数 xxxx 规定的 Unicode 字符。

    表达式:

    方括号用于查找某个范围内的字符:

    1
    2
    3
    [abc]   查找方括号之间的任何字符。
    [0-9]   查找任何从 0 至 9 的数字。
    (x|y)   查找任何以 | 分隔的选项。

    量词:

    1
    2
    3
    n+  匹配任何包含至少一个 n 的字符串。
    n*  匹配任何包含零个或多个 n 的字符串。
    n?  匹配任何包含零个或一个 n 的字符串。

    以下部分都是引用的:

    来源:https://www.cnblogs.com/jay3352/p/5784050.html

    正则表达式的() [] {}有不同的意思。

    () 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。

    (s*)表示连续空格的字符串。

    []是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[s*]表示空格或者*号。

    {}一般用来表示匹配的长度,比如 s{3} 表示匹配三个空格,s[1,3]表示匹配一到三个空格。 

    (0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。

    [0-9]{0,9} 表示长度为 0 到 9 的数字字符串。

    下面记录了一些常用的正则表达式:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    用户名 /^[a-z0-9_-]{3,16}$/
     
    密码   /^[a-z0-9_-]{6,18}$/
     
    acas12_aaa@sina.com.cn
     
    电子邮箱   /^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$/
     
    /^[a-zd]+(.[a-zd]+)*@([da-z](-[da-z])?)+(.{1,2}[a-z]+)+$/
     
    URL /^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/
     
    IP 地址 /((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)/
     
    /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
     
    HTML 标签 /^<([a-z]+)([^<]+)*(?:>(.*)</1>|s+/>)$/
     
    删除代码\注释 (?<!http:|S)//.*$
     
    Unicode编码中的汉字范围 /^[u2E80-u9FFF]+$/
     
    “^d+$"  //非负整数(正整数 + 0)
     
    "^[0-9]*[1-9][0-9]*$"  //正整数
     
    "^((-d+)|(0+))$"  //非正整数(负整数 + 0)
     
    "^-[0-9]*[1-9][0-9]*$"  //负整数
     
    "^-?\d+$"    //整数
     
    "^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)
     
    "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"
     
    //正浮点数
     
    "^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)
     
    "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"
     
    //负浮点数
     
    "^(-?\d+)(\.\d+)?$"  //浮点数
     
    "^[A-Za-z]+$"  //由26个英文字母组成的字符串
     
    "^[A-Z]+$"  //由26个英文字母的大写组成的字符串
     
    "^[a-z]+$"  //由26个英文字母的小写组成的字符串
     
    "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
     
    "^\w+$"  //由数字、26个英文字母或者下划线组成的字符串
     
    "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址
     
    "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url
     
    "^[A-Za-z0-9_]*$"。
  • 相关阅读:
    oracle数据库闪回执行步骤——oracle数据库回退
    10.20总结
    10.11总结
    10.10总结
    10.9总结
    10.8总结
    10.7总结
    10.6总结
    10.5总结
    10.4总结
  • 原文地址:https://www.cnblogs.com/gfl123/p/7881716.html
Copyright © 2011-2022 走看看