正则表达式锚匹配
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 /* 2 字符类:空白字符 3 4 元字符/元符号 匹配情况 5 \0 匹配null字符 6 \b 匹配空格字符 7 \f 匹配进纸字符 8 \n 匹配换行字符 9 \r 匹配回车字符 10 \t 匹配制表字符 11 \s 匹配空白字符、空格、制表符和换行符 12 \S 匹配非空白字符 13 14 15 字符类:锚字符 16 17 元字符/元符号 匹配情况 18 ^ 行首匹配 19 $ 行尾匹配 20 \A 只有匹配字符串开始处 21 \b 匹配单词边界,词在[]内时无效 22 \B 匹配非单词边界 23 \G 匹配当前搜索的开始位置 24 \Z 匹配字符串结束处或行尾 25 \z 只匹配字符串结束处 26 27 28 字符类:记录字符 29 30 元字符/元符号 匹配情况 31 (string) 用于反向引用的分组 32 \1或$1 匹配第一个分组中的内容 33 \2或$2 匹配第二个分组中的内容 34 \3或$3 匹配第三个分组中的内容 35 36 37 贪婪 惰性 38 + +? 39 ? ?? 40 * *? 41 {n} {n}? 42 {n,} {n,}? 43 {n,m} {n,m}? 44 45 */ 46 47 48 var pattern=/go ogle/; //直接使用空格匹配 49 var str='go ogle'; 50 alert(pattern.test(str)); 51 52 var pattern=/go\sogle/; //\s表示空格匹配 53 var str='go ogle'; 54 alert(pattern.test(str)); 55 56 var pattern=/google\b/; //\b表示到达边界 57 var str='google'; 58 alert(pattern.test(str)); 59 60 var pattern=/google|baidu|bing/; // |表示到匹配或选择模式 61 var str='this is a bing'; 62 alert(pattern.test(str)); 63 64 var pattern=/google{4,7}/; //表示e的4-8次 65 var str='googleeee'; 66 alert(pattern.test(str)); 67 68 var pattern=/(google){4,8}/; //分组,可以看成一个字符 69 var str='googlegooglegooglegoogle'; //表示google的4-8次 70 alert(pattern.test(str)); 71 72 var pattern=/8(.*)8/; 73 var str='This is a 8google8'; 74 alert(pattern.test(str)); 75 76 var pattern=/8(.*)8/; 77 var str='This is a 8google8'; 78 pattern.test(str); //需要先运行 79 alert(RegExp.$1); //RegExp.$1表示获取模式中第一个分组对应的匹配字符串(google) 80 81 var pattern=/8(.*)8/; 82 var str='This is a 8google8'; 83 document.write(str.replace(pattern,'<strong>$1</strong>')); //$1表示分组获取字符串匹配到的内容 84 85 var pattern=/(.*)\s(.*)/; 86 var str='google baidu'; 87 alert(str.replace(pattern,'$2 $1')); //位置交换 88 89 90 91 //关于贪婪和惰性 92 93 var pattern=/[a-z]+/; //这里使用了贪婪模式 94 var str='fdsfasd'; 95 alert(str.replace(pattern,'1')); //所有的字符串变成了1 96 97 var pattern=/[a-z]+/g; //开启全局,并且使用贪婪模式 98 var str='fdsfasd'; 99 alert(str.replace(pattern,'1')); //所有的字符串变成了1 100 101 var pattern=/[a-z]+?/; //这里使用了惰性模式 102 var str='fdsfasd'; 103 alert(str.replace(pattern,'1')); //只有第一个字符变成了1,后面没有匹配 104 105 var pattern=/[a-z]+?/g; //开启全局,并且使用惰性模式 106 var str='fdsfasd'; 107 alert(str.replace(pattern,'1')); //每一个字母都替换成了1 108 109 var pattern=/8(.*)8/; //使用了贪婪 110 var str='8google8 8google8 8google8'; //匹配到了8google8 8google8 8google8 111 document.write(str.replace(pattern,'<strong>$1</strong>'));//结果:<strong>google8 8google8 8google</strong> 112 113 var pattern=/8(.*?)8/g; //使用了惰性,开启全局 114 var str='8google8 8google8 8google8'; 115 document.write(str.replace(pattern,'<strong>$1</strong>')); 116 //结果: 117 // <strong>google</strong> 118 // <strong>google</strong> 119 // <strong>google</strong> 120 121 var pattern=/8([^8]*)8/g; //另一种惰性,屏蔽了8的匹配,也就是两边的包含字符 122 var str='8google8 8google8 8google8'; 123 document.write(str.replace(pattern,'<strong>$1</strong>')); 124 //结果: 125 // <strong>google</strong> 126 // <strong>google</strong> 127 // <strong>google</strong>
高否?富否?帅否?
否?
滚去学习!