正则基本语法


<script type="text/javascript">
    // 说明: 正则在不同语言的支持方法语法略有不同  js、java、php ...
    var str = "Hello Java Hello java";
    // 1:在js中如果要引入正则表达式,则需要:/.../
    // 2:stirng.match(/表达式/) 匹配成功返回数组,否则为null
    // 3:普通匹配符: 能够匹配以之对应的字符
    // 4:默认正则区分大小写
    // 5: i、g、m 称为正则标记符(参数): i:不区分大小写 g:全局匹配  m: 多行匹配
    var r=str.match(/java/gi);
    
    // 6:能够匹配多个字符中的其中一个匹配符: \d: 0~9  \w: 字母、数字、下划线  .:匹配除换行的所有字符(\d \w . 都只能匹配一个)
    str = "hello 2016";
    r=str.match(/\w.\d/g);
    
    // 7:能够自定义规则的匹配符[],如果在[^]代表取反
    str = "198"  // 第二数值 3|5|8|9
    r=str.match(/1[3589]\d/);
    
    // 8:用来修饰匹配次数的匹配符  {n}: 代表前面匹配符出现n次
    /*
        {n,m}: 出现次数 n~m之间   {n,}: n~max   {,n}: min~n
         +: 1~max  ?: 0~1  *: 0~max
    */
     str = "18312345678";
    r=str.match(/1[3589]\d{9}/);
    
    // 9:正则表达式的完整匹配  ^: []中^代表取反,但是在外面代表的是从开始匹配  $:持续匹配的结束
    // 10:特殊符号如何匹配,在正则中:^ $ . \ [] 这些符号在匹配的时候需要加\
    str = "15312345678";
    r=str.match(/^1[3589]\d{9}$/);
    str = "153^.$[]";
    r=str.match(/\^\.\$\[\]$/);
    
    // 11: 条件分支 |  2:(): 1: 括号中的内容,成为一个独立的整体! 2: 括号的内容可以进行分组,单独匹配,不需要此功能则(?:)
    // 在添加^$ 完整匹配模式下如果完整匹配成功后面才会有分组匹配的功能.
    str = "12&3.jpeg";
    r=str.match(/\.(?:png|gif|jpe?g)$/);
    
    // 12: 数值的匹配   1:把合法的数值写出并分析规律   2:根据规律编写正则,并且测试非法数值
    str = "-12.34E5";
    r = str.match(/^(-?)(0|[1-9]\d*)(\.\d+)?([eE][-+]?\d+)?$/);
    
    
    // 13: 中文的处理 默认中文采用的是双字节, 在计算机中通过ASCII对应表来输入汉字
    //  来设置中文的范围即可 escape() 可以把字符串转化为ASCII编码   unescape() 可以把编码转化为中文
    // console.info(escape('一') + "," + unescape(escape('一')) + "," + escape('龥'));
    str = '欕eom旕eos瓰fenwa覅fiao猤fui甴gad嚿geo啹geu喼gib嗰go兝gongfen兣';
    r=str.match(/[\u4E00-\u9FA5]/g);
    
    // 14: 贪婪与懒惰: 在正则中默认是贪婪模式(尽可能多的匹配) 可以在修饰数量的匹配符(* + ? {})后面添加? 则代表懒惰
    str = "aabab";
    r=str.match(/a.*?b/g);
    console.info(r);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值