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 = /g\wgle/; 
102 //var str = 'g写gle';
103 //alert(pattern.test(str));
104 
105 
106 //var pattern = /google\d*/; //\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 = /goo\sgle/; //\s 可以匹配到空格     \s 查找空白字符。 
122 //var str = 'goo gle';
123 //alert(pattern.test(str));
124 
125 
126 //var pattern = /\bgoogle/; //\b 可以匹配是否到了边界
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\n2.google\n3.bing';
215 //var result = str.replace(pattern, '#');
216 //alert(result);
217 
218 
219 
220 
221 </script>
222 </head>
223 <body>
224 </body>
225 </html>