zoukankan      html  css  js  c++  java
  • JavaScript中的正则表达式

    计算机语言中的转义字符

    回车换行
    横向跳到下一制表位置
    v 竖向跳格 垂直制表符 == x0B
     退格
    回车
    f 走纸换页

    u 使用数字指定的Unicode 字符,如u2000
    x使用十六进制数指定的Unicode 字符,如xc8


    正则表达式语法

    字符类

    [...] 

    匹配方括号中字符序列中的任意一个字符。其中可以使用连字符“-”匹配指定范围内的字符

    例如:/[012]/可以与0A2B3C中的字符0.1.2匹配

    [^...]

    匹配方括号字符序列中未包含的任意字符。与[...]相反

    .

    匹配除了换行和回车以外的任意字符相当于[^ ]

    d

    匹配任意一个的数字字符,相当于[0-9]

    D

    匹配任意一个非数字字符,相当于[^0-9]

    s

    匹配任意空白字符,如空格,制表符,换行符等。相当于[ x0Bf ]

    S

    匹配任意非空白字符,相当于[^ x0Bf ]

    w

    匹配任意英文字母,数字字符及下划线,相当于[a-zA-Z0-9_]

    *:使用[^...]时候,如果“^"不是出现在"["后边,则仍表示字符"^"的原义。下面介绍"^"的原意义。

    使用量词

    正则表达式中,使用量词可以控制匹配字符、字符串出现的次数。

    匹配前一项0次或1次

    例如:/JS?/可以匹配JScript中的JS和JavaScript中的J

    +

    匹配前一项1次或多次,至少出现一次。

    *

    匹配前一项0次或多次

    {n}

    匹配前一项恰好n次,其中n为非负整数

    {n,}

    匹配前一项至少n次

    {n,m}

    匹配前一项至少n次,但不超过m次。n、m都为非负数。且n<=m

    例如:/o{2,5}/可以与book中的两个o,booooooook中的5个连续的o匹配。

    使用{n,m}限定符时,数字和","之间不能有空格

     指定匹配的位置

    ^

    匹配字符串的行开头,字符"^"必须出项在指定字符串的最前面。

    例如:/^g/可以匹配good中的g,但不能匹配bag中的g

    $

    匹配字符串的行结尾,字符"$"必须出项在指定字符串的最后边

    例如:/g$/可以匹配bag中的g,但不能匹配good中的g

    

    匹配单词的边界

    例如:/e/与I love seek中love的e匹配但和seek中的e不匹配。

    B

    匹配单词的非边界

    例如:/eB/与I love seek 中seek的e相匹配,但和love中的e不匹配。

    选择匹配符

    |

    选择匹配符可以匹配所指定的两个选项中的任意一个。

    例如:/World|Dream/可以与”One World,One Dream"中的World或者Dream匹配。

    分组

    分组就是使用括号将多个单独的字符或字符类组合成子表达式,以便可以像处理一个独立的单元那样,应用|  *  + 或 ? 等来处理它们。例如:正则表达式;/J(ava)?Script/即与字符串“JavaScript”,又与字符串“JScript”相匹配。

    创建正则表达式

    在JavaScript中,正则表达式由RegExp对象表示。

    通过RegExp类的构造方法创建

    语法格式:new RegExp(patten[,flags])

    pattern:必选参数,用于指定需要匹配的模式字符串

    flags:可选参数,用于指定正则表达式的标志信息。

      g:全局标志,表示匹配字符串中出现的所有匹配子字符串;

      i:忽略大小写标志,,,在执行模式比配的时候不区分大小写。

      m:多行标志,如果不设置此标志,那么"^"只匹配字符串的开头,“$”只能匹配字符串的结尾,否则,“^”可以匹配多行字符串中的每一行的开头,“$”可以匹配多行字符串中每一行的结尾。

    例如:

    var objExp = new RegExp(“\d”);  

    var objExp = new RegExp(“\d”,"g");   //上面的正则表达式只会匹配第一个出现的数字,如果想匹配所有出现的数字必须加一个全局标志g

    *:必须在模式字符串“”前面加上“”,这是正常的字符串避开规则。

    通过正则表达式字面量创建

    语法格式:/pattern/[flags]

    例如:var objExp = /d/

       var objExp = /d/g

    应用RegExp执行模式匹配

    test()方法

    语法格式:regExp.test(str)

    如果搜索到匹配的字符则返回true,否则返回false;

    exec()方法

    语法格式:regExp.exec(str)

    当没有搜索到匹配的字符时,返回null;

    否则返回一个数组,数组的第一个元素是与正则表达式匹配的字符串,其他元素包含的是匹配的各个分组,即:正则表达式中用括号括起来的子表达式匹配的字串。

     例如:

    var str = "220104190008270343";

    var objExp = /d{6}([12]d{3})([01]d)([0123]d)d{4}/;

    var arr = objExp.exec(str);

    则arr数组的值为:

    arr[0] : "220104190008270343"

    arr[1] : "1900"

    arr[2] : "08"

    arr[3] : "27"

  • 相关阅读:
    centos 6.4 FTP安装和配置
    常用正则表达式集锦
    同一服务器部署多个tomcat时的端口号修改详情
    介绍linux下vi命令的使用
    CentOS下安装两个或多个Tomcat7
    tomcat解析之简单web服务器(图)
    吻你
    用C++语言开发Android程序 配置开发环境
    内地开源镜像网站
    Android SDK Android NDK Android Studio 官方下载地址
  • 原文地址:https://www.cnblogs.com/mingluosunshan/p/3282293.html
Copyright © 2011-2022 走看看