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

      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta charset="UTF-8">
      5 <title></title>
      6 <script>
      7 //正则表达式是一个描述字符规则的对象
      8 //创建正则
      9 //第一个参数就是我们的模式字符串
     10 //第二个参数可选,模式修饰符。i表示忽略大小写;g表示全局
     11 //var reg = new RegExp('study');
     12 
     13 //var reg = /study/ig;
     14 
     15 //test()方法检索字符串中的指定值,返回值true 或 false
     16 //alert(reg.test("Study"))
     17 
     18 //exec()方法检索字符串中的指定值,返回值是被找到的值。如果没有发现匹配,则返回null
     19 //var reg=/a/
     20 //alert(reg.exec('abc'))
     21 
     22 //var reg=/a/g
     23 //var str='ababab'
     24 //while(reg.exec(str)){
     25 //    alert(reg.lastIndex);//lastIndex 只有在全局时,才有效
     26 //}
     27 
     28 //每个正则表达式都有一个lastIndex属性,用于记录上一次匹配结束的位置
     29 //它是匹配到末尾,没有匹配到时,下次就又从头开始匹配了
     30 //var reg=/a/g
     31 //alert(reg.test("a"))//true
     32 //alert(reg.lastIndex)//1
     33 //reg=/a/g
     34 //alert(reg.test("a"))//false
     35 //alert(reg.lastIndex)//0
     36 //alert(reg.test("a"))//true
     37 //alert(reg.lastIndex)//1
     38 //alert(reg.test("a"))
     39 //alert(reg.lastIndex)
     40 
     41 
     42 //match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
     43 //alert('aaa'.match(/a/g))
     44 //alert('1a2a3a'.match(/d/g))
     45 
     46 //search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串
     47 //如果没有找到任何匹配的子串,则返回-1,否则返回相应的下标位置
     48 //alert('babcabc'.search(/a/))
     49 
     50 
     51 //replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
     52 //alert('abcabc'.replace(/a/, '_'))
     53 //alert('a1b12c123a1b12c'.replace(/d+/g, '_'))
     54 //alert('10,20'.replace(/(d+),(d+)/,'$2-$1'))
     55 //var str='aaa bbb ccc'
     56 //var uw=str.replace(/w+/g, function(word){
     57 //    return word.substring(0,1).toUpperCase()+word.substring(1);
     58 //})
     59 //alert(uw)
     60 
     61 
     62 //split()方法用于把一个字符串分隔成字符串数组
     63 //alert('a1b2c3d'.split(/d/g))
     64 //alert('1a2A3'.split(/a/ig))
     65 
     66 
     67 //元字符
     68 
     69 //.匹配一个任意字符
     70 //alert(/a..c/.test('abbc'))
     71 
     72 //*匹配0到多个,*号要和前面的配合使用
     73 //alert(/a*c/.test('bdc'))
     74 
     75 //+匹配至少1个,加号要和前面的配合使用
     76 //alert(/a.+c/.test('ac'))
     77 //alert(/a+c/.test('ac'))
     78 //alert(/a+bc/.test('abcc'));//true
     79 
     80 //匹配2-4个之间,要和前面配合使用
     81 //alert(/a.{2,4}c/.test('axxxc'))//匹配包含 X 到  Y 个 n 的序列的字符串。
     82 
     83 //匹配任何其后紧接指定字符串 n 的字符串。
     84 //alert(/.(?=b)/.test('abcabc'))
     85 
     86 //alert('abcabc'.replace(/ca(?=b)/g, '_'))
     87 
     88 //查找方括号之间的任何字符。查找任何从小写 a 到小写 z 的字符。
     89 //alert(/g[a-z]e/.test('google'))//gle
     90 //alert(/g[a-zA-Z]e/.test('googLe'))
     91 //alert(/g[ab]e/.test('gce'))
     92 
     93 //查找任何不在方括号之间的字符。
     94 //alert(/g[^ab]e/.test('gae'))
     95 //alert(/g[^0-9]e/.test('gae'))
     96 
     97 //[a-z]查找任何从小写 a 到小写 z 的字符。    [A-Z]+表示 A-Z 一次或多次
     98 //alert(/g[a-z][A-Z]+e/.test('gaaFe'))
     99 
    100 
    101 //var pattern = /gwgle/; 
    102 //var str = 'g写gle';
    103 //alert(pattern.test(str));
    104 
    105 
    106 //var pattern = /googled*/; //d*匹配任意多个数字
    107 //var str = 'google444';
    108 //alert(pattern.test(str));
    109 
    110 
    111 //var pattern = /D{6,}/; //D{7,}匹配至少 7 个非数字
    112 //var str = 'google8';
    113 //alert(pattern.test(str));
    114 
    115 
    116 //var pattern = /^google$/; //^从开头匹配,$从结尾开始匹配
    117 //var str = 'google';
    118 //alert(pattern.test(str));
    119 
    120 
    121 //var pattern = /goosgle/; //s 可以匹配到空格     s 查找空白字符。 
    122 //var str = 'goo gle';
    123 //alert(pattern.test(str));
    124 
    125 
    126 //var pattern = /google/; // 可以匹配是否到了边界
    127 //var str = 'google';
    128 //var str2= 'googleaa googlexx google dsdddd';
    129 //alert(pattern.test(str2));
    130 
    131 
    132 //var pattern = /google|baidu|bing/; //匹配三种其中一种字符串
    133 //var str = 'goobaidugle';
    134 //alert(pattern.test(str));
    135 
    136 
    137 //var pattern = /(go){4,8}/; //匹配分组里的字符串 4-8 次
    138 //var str = 'googlegooglegooglegoogle';
    139 //alert(pattern.test(str));
    140 
    141 
    142 //match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
    143 /*
    144  如果有/g   表示全局查找,找到其中一个之后,从该下标继续向后查找,将符合条件的结果保存到数组中
    145 如果没有/g   表示仅查找一次,下标0的元素指匹配的字符串;下标1的元素指()字表达式匹配的字符串
    146  * */
    147 //var pattern = /8(..)8/g; //(.*)8获取 8..8 之间的任意字符
    148 //var str = '8ab8b8cc8';
    149 //其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。
    150 //alert(str.match(pattern));
    151 
    152 //alert($1); //得到第一个分组里的字符串内容
    153 
    154 //var pattern = /8(.*)8/;
    155 //var str = 'This is 8google8';
    156 //var result = str.replace(pattern,'<strong>$1</strong>'); //得到替换的字符串输出
    157 //document.write(result);
    158 
    159 
    160 //var pattern = /(.*)s(.*)/;
    161 //var str = 'google baidu';
    162 //var result = str.replace(pattern, '$2 $1'); //将两个分组的值替换输出
    163 //document.write(result);
    164 
    165 
    166 //exec()方法检索字符串中的指定值,返回值是被找到的值。如果没有发现匹配,则返回null
    167 //var pattern = /[a-z]+s[0-9]{4}$/i;
    168 //var str = '12121google 2501';
    169 //alert(pattern.exec(str)); //返回整个字符串
    170 
    171 
    172 //var pattern = /^[a-z]+/i; //只匹配字母
    173 //var str = 'google 2012';
    174 //alert(pattern.exec(str)); //返回 google
    175 
    176 
    177 //var pattern = /^([a-z]+)s([0-9]{4})$/i; //使用分组
    178 //var str = 'google 2012';
    179 //alert(pattern.exec(str)[0]); //google 2012
    180 
    181 
    182 
    183 //var pattern = /(d+)([a-z])/; //捕获性分组
    184 //var str = '123abc';
    185 //alert(pattern.exec(str));
    186 
    187 
    188 //(?:x) 匹配x,但不记录匹配结果
    189 //var pattern = /(d+)(?:[a-z])/; //非捕获性分组
    190 //var str = '123abc';
    191 //alert(pattern.exec(str));
    192 
    193 
    194 //var pattern = /(A?(B?(C?)))/; //从外往内获取
    195 //var str = 'ABC';
    196 //alert(pattern.exec(str));
    197 
    198 
    199 ///var pattern = /.[/b]/;
    200 //var pattern = /.[/b]/; //特殊字符,用符号转义即可
    201 //var str = '.[/b]';
    202 //alert(pattern.test(str));
    203 
    204 //var pattern = /\/; 
    205 //var str = "\";
    206 //alert(pattern.test(str));
    207 
    208 //var pattern = /.[/b]/; 
    209 //var str = ".[/b]";
    210 //alert(pattern.test(str));
    211 
    212 
    213 //var pattern = /^d+/mg; //启用了换行模式
    214 //var str = '1.baidu
    2.google
    3.bing';
    215 //var result = str.replace(pattern, '#');
    216 //alert(result);
    217 
    218 
    219 
    220 
    221 </script>
    222 </head>
    223 <body>
    224 </body>
    225 </html>
  • 相关阅读:
    iOS 判断两个日期之间的间隔
    iOS UITextField设置placeholder颜色
    iOS 当键盘覆盖textFiled时简单的处理方法
    iOS 点击空白处收回键盘的几个简单代码
    iOS 字符串和图片互转
    JDBC连接数据库
    Java虚拟机原理和调优
    java读写文件IO
    MultipartFile 获取上传TXT文件字数
    Runtime.getRuntime().exec()实现Java调用python程序
  • 原文地址:https://www.cnblogs.com/thestudy/p/5628071.html
Copyright © 2011-2022 走看看