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

    正则表达式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-U-Compatible" content="IE-edge">
        <meta name="viewport" content="width=device-width,initial-scale=1">
        <title>正则表达式</title>
    </head>
    <body>
        <h1>正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)</h1>
        <p>使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式</p>
        <p>语法:/正则表达式主体/修饰符(可选)</p>
        <p>实例:   var patt = /runoob/ig</p>
        <p>实例解析:/runoob/i  是一个正则表达式。</p>
        <p> runoob  是一个正则表达式主体 (用于检索)。</p>
        <p> ig  是修饰符 (i:搜索不区分大小写;g:搜索全局)。</p>
        <h1>正则表达式中的特殊字符  字符 含意</h1>
        <p> 做为转意,即通常在""后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后//,转意为匹配一个单词的边界。</p>
        <p>对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了""后,/a*/将只匹配"a*"。</p>
        <h1>正则表达式</h1>
        <p>^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"</p>
        <p>$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"</p>
        <p>* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa</p>
        <p>+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa</p>
        <p>? 匹配前面元字符0次或1次,/ba*/将匹配b,ba</p>
        <p>(x) 匹配x保存x在名为$1...$9的变量中</p>
        <p>x|y 匹配x或y</p>
        <p>{n} 精确匹配n次</p>
        <p>{n,} 匹配n次以上</p>
        <p>{n,m} 匹配n-m次</p>
        <p>[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)</p>
        <p>[^xyz] 不匹配这个集合中的任何一个字符</p>
        <p>[] 匹配一个退格符</p>
        <p> 匹配一个单词的边界</p>
        <p>B 匹配一个单词的非边界</p>
        <p>cX 这儿,X是一个控制符,/cM/匹配Ctrl-M</p>
        <p>d 匹配一个字数字符,/d/ = /[0-9]/</p>
        <p>D 匹配一个非字数字符,/D/ = /[^0-9]/</p>
        <p>
     匹配一个换行符</p>
        <p>
     匹配一个回车符</p>
        <p>s 匹配一个空白字符,包括
    ,
    ,f,	,v等</p>
        <p>S 匹配一个非空白字符,等于/[^
    f
    	v]/</p>
        <p>	 匹配一个制表符</p>
        <p>v 匹配一个重直制表符</p>
        <p>w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[w]匹配"$5.98"中的5,等于[a-zA-Z0-9]</p>
        <p>W 匹配一个不可以组成单词的字符,如[W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。</p>
        <script type="text/javascript">
            var str = 'Hello World! Nice to meet you.';
            //  字符串方法中正则表达式的应用  replace search split match
            var newStr = str.replace(/s/ig,'*');  // replace 如果不指定 g 全局,那么当替换第一个匹配到的字符串就会停止
            console.log(newStr);  //  Hello*World!*Nice*to*meet*you.
            console.log(str.search(/d/i));  //  没有找到数字 所以结果 是  -1
            console.log(str.search(/w/i));  // 返回找到的第一个古河规则字符串的 索引  这里是 0
            var arr = str.split(/s/i);  //  空字符串分割
            console.log(arr);  //  ["Hello", "World!", "Nice", "to", "meet", "you."]
            // match  在字符串内搜索指定的值,匹配成功返回匹配成功的数组,无则返回 null
            var tmpArr1 = str.match(/w/ig);
            var tmpArr2 = str.match(/d/ig);
            console.log(tmpArr1);  // ["H", "e", "l", "l", "o", "W", "o", "r", "l", "d", "N", "i", "c", "e", "t", "o", "m", "e", "e", "t", "y", "o", "u"]
            console.log(tmpArr2);  // null
    
            // 正则表达式对象的方法
            var patt1 = /d/ig;
            var patt2 = /w/ig;
            //  test() 检测字符串中是否包含定义字符,返回布尔
            console.log(patt1.test(str));  // false
            console.log(patt2.test(str));  // true
            //  exec() 检索字符串中指定的值,匹配成功返回数组,匹配失败返回 null
            var tmp1 = patt1.exec(str);
            var tmp2 = patt2.exec(str);
            console.log(tmp1);  // null
            console.log(tmp2);  // ["e", index: 1, input: "Hello World! Nice to meet you.", groups: undefined]
        </script>
    </body>
    </html>
  • 相关阅读:
    数据绑定表达式语法(Eval,Bind区别)
    使用博客园的第一件事 自定义主题
    sql2000 跨服务器复制表数据
    使用UpdatePanel 局部刷新出现中文乱码的解决方法!!
    MMC不能打开文件MSC文件
    sql 日期 、时间相关
    loaded AS2 swf call function in AS3 holder
    Rewrite the master page form action attribute in asp.net 2.0
    100万个不重复的8位的随机数
    flash 中实现斜切变型
  • 原文地址:https://www.cnblogs.com/znyyy/p/11095908.html
Copyright © 2011-2022 走看看