zoukankan      html  css  js  c++  java
  • javasrcipt——正则

    使用正则

    var  regString=new RegExp("string");

    默认正则匹配第一个出现的字符串,如果想全局匹配需要加参数“g”

    var  regString=new RegExp("string","g");

    同时,正则默认是区分大小写的如果想不区分大小写需要参数“i”

    var  regString=new RegExp("string","gi");

    也可以使用perl风格的正则如下

    var  regString=/string/gi;

    正则的函数和参数

    var sm="a bat, a Cat, a fAt baT,a faT cat";
    var par=/at/gi;
    alert(sm.search(par));output: 3

    exex()方法有一个字符串参数,返回一个数组,数组中的第一个条目是第一个匹配,其他是反向引用
    var s=par.exec(sm);
    alert(s);output :at

    String对象的match()方法会返回包含字符串的所有匹配数组,这个方法调用string对象,同时传给RegExp对象
    var matchs=sm.match(par);
    alert(matchs);output:at,at,At,aT,at

     

    扩展字符串方法


    var par2=/at/g;
    var sp=sm.replace(par2,"%");
    alert(sp);output:a b%,a C%,a fAt baT,a faT c%

    replace(old,new)使用第二个参数替换第一个参数


    var spl=sm.split(",");
    alert(spl);

    //标志(参数)
    //i 不区分大小写的匹配
    //g 全局匹配,找到所有匹配,而不是找到第一个匹配后停止
    //m 多行匹配,这时 ^ 匹配字符串开头和每一行的开头,$ 匹配每一行的结尾和字符串结尾

     元字符

    ([{\^$|)*?+.

    使用元字符必须使用\进行转义

    //支持正则表达式的 String 对象的方法

    search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。找到匹配则返回字符串的起始位置,否则返回-1

    match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。找到则返回匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。该方法返回一个新的字符串。

    split() 方法用于把一个字符串分割成字符串数组。该方法返回一个新的字符串。String.split() 执行的操作与 Array.join执行的操作是相反的。

    /n 换行
    /r 回车
    /t 制表符
    /v 垂直制表符
    /f 换页符
    [……]
    [^……]
    /s 任何空白符
    /w 任何ACSII单字符,等同于[a-zA-Z0-9_]
    /d 任何单个数字,等同于[0-9]

    /S 任何非空白符
    /W 任何非ACSII单字符,等同于[^a-zA-Z0-9_]
    /D 任何非单个数字,等同于[^0-9]

    ^ 匹配字符串头部
    $ 匹配字符串尾部
    . 除换行和终止符之外的任意字符
    ? 0次或1次
    + 1次或多次
    * 0次或多次
    {n} n次
    {n,m} 至少n次,但不多于m次
    {n,} n到无穷次

    非贪婪重复[在重复字符后加?]
    ??
    +?
    *?
    {n,m}?

    选择 |
    分组 ()
    只组合(?:……)
    引用 \n 必须和分组联合使用,按分组顺序(从左到右)

    RegExp 对象属性

    属性
    global g
    ignoreCase i 
    multiline m
    source /[ab]/i =>[ab]
    lastIndex

    方法

    exec() 和match()全局模式相同,返回匹配数组,否则返回null 
    test() 返回true和false,等价于调用exec()。

    compile() 方法用于在脚本执行过程中编译正则表达式。也可用于改变和重新编译正则表达式。

    ###############

    {

    var reTest=/[ba]/i;
    alert(reTest.global);
    alert(reTest.ignorCase);
    alert(reTest.multiline);
    alert(reTest.source);

    }

    {

    var sToMatch="bbq is short for barbecue";
    var par=/b/g;
    par.exec(sToMatch);
    alert(par.lastIndex);
    par.exec(sToMatch);
    alert(par.lastIndex);
    par.exec(sToMatch);
    alert(par.lastIndex);

    }
    {compile()
    var str="Every man in the world! Every woman on earth!";
    patt=/man/g;
    str2=str.replace(patt,"person");
    document.write(str2+"<br />");
    
    patt=/(wo)?man/g;  重新编译了patt
    patt.compile(patt);
    str2=str.replace(patt,"person");
    document.write(str2);
    }
  • 相关阅读:
    后端注册接口完善
    编写注册接口
    Git 多人开发及常见问题
    Git 常用命令
    GIT 的安装及配置SSH
    ORM查询方法(整理)
    HTTP的系列理解与整理
    Unity C# 反射
    C# 中的委托和事件
    Unity C# 运用 GetSaveFileName() 导出Excel文件
  • 原文地址:https://www.cnblogs.com/fslnet/p/2282296.html
Copyright © 2011-2022 走看看