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