1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
| <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>正则表达式</title> <style type="text/css" media="screen"> ul img { width: 100px; } ul li { display:inline; } </style> </head> <body> <script type="text/javascript" charset="utf-8">
console.info("Hello Java, hello java 2014".match(/\d\w./g));
console.info("138 158 170".match(/1[3589]\d/g)); console.info("148 168".match(/1[^3589]\d/));
console.info("15816816500".match(/1[3589]\d\d\d\d\d\d\d\d\d/)); console.info("15816816500".match(/1[3589]\d{9}/)); console.info("15816816500".match(/1[3589]\d{1,5}/)); console.info("15816816500".match(/1[3589]\d{5,}/));
console.info("phone:15816816500150167161".match(/^1[3589]\d{9}/)); console.info("15816816500150167161".match(/^1[3589]\d{9}/)); console.info("15816816500".match(/^1[3589]\d{9}$/));
console.info("[192.168.1.1]".match(/\[\d+\.\d+\.\d+\.\d+\]/));
console.info("12&3.jpeg".match(/.+\.(png|gif|jpe?g)$/));
console.info("-34.45e-2".match(/(-?)(0|[1-9]\d*)(\.\d+)?([eE][+-]?\d+)?/));
console.info(escape('一') + "," + unescape(escape('一')) + "," + escape('䶳')); console.info("中国人".match(/[\u4E00-\u9FA5]/g));
console.info("aabab".match(/a.*b/g)); console.info("aabab".match(/a.*?b/g));
</script>
<!-- 15.a 网页抓取图片 --> <ul class='ul'>
<!-- 匹配所有的图片,注意几个img的差别 --> <li><img src='2.jpg' /></li> <li><img alt='prompt' src="3.jpg" class='cla' ></li> <li><IMG alt='prompt' Src="4.jpg"></li>
</ul>
<script type="text/javascript" charset="utf-8">
console.log("图片1:<img src='img.png' />...".match(/<img\ssrc='.+'.+\/>/));
console.log("图片2:<img alt='prompt' src=\"3.jpg\" class='cla' >...".match(/<img.+src=['"].+['"].+\/?>/));
console.log("图片3:<IMG alt='prompt' Src=4.jpg>...".match(/<img.+src=['"]?.+['"]?.*\/?>/i));
var imgs = "图片1:<img src='img.png' />图片2:<img alt='prompt' src=\"3.jpg\" class='cla' >图片3:<IMG alt='prompt' Src=4.jpg>";
console.info(imgs.match(/<img.+src=['"]?.+['"]?.*\/?>/i));
console.info(imgs.match(/<img.+?src=['"]?.+?['"]?.*?\/?>/gi));
</script>
<!-- 15.b 抓取百度首页图片 --> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" charset="utf-8"> $.ajax({ url: 'data.txt', dataType: 'html', success: function(data) { var srcs = data.match(/<img.+?src=['"]?.+?['"]?.*?\/?>/gi); } });
</script> <!-- 15.c 非法标签过滤(防止html注入) 其实应该在后端实现,用js只是演示,原理是相同的 --> <!-- html注入演示<script type="text/javascript" charset="utf-8">window.open("http://www.baidu.com", "_blank");</script>里面怎么会有百度页面呢?<iframe src="http://www.baidu.com"></iframe>需要屏蔽哦! --> <h3>html注入测试</h3> <textarea id="txt" rows="8" cols="40"></textarea> <input type="button" value="html注入测试" onclick="show();"> <script type="text/javascript" charset="utf-8"> function show() { var txt = document.getElementById('txt').value; console.info(txt); txt = txt.replace(/<\/?(style|script|i?frame)(.|\n)*?>/gi, ''); console.info(txt);
var txt2 = document.getElementById('txt').value; txt2 = txt2.replace(/<(style|script|i?frame)(.|\n)*?>*?<\/?(style|script|i?frame)(.|\n)*?>/gi, ''); console.info(txt2); } </script>
<!-- 15.d 正则匹配IP地址 --> <script type="text/javascript" charset="utf-8">
console.log("192.168.1.1".match(/(?:(?:25[0-5]|2[0-4]\d|[1-9]?\d|1\d{2})\.){3}(?:25[0-5]|2[0-4]\d|[1-9]?\d|1\d{2})/)); </script>
<!-- 15.3 exec和test的使用 --> <script type="text/javascript" charset="utf-8">
var email = "19999@qq.com,xyz@163.com,20000@qq.com";
console.info(email.match(/(\d+)@qq.com/)); console.info(email.match(/(\d+)@qq.com/g));
var re = new RegExp(/(\d+)@qq.com/g); console.info("lastindex:"+re.lastIndex); console.info(re.exec(email));
console.info("lastindex:"+re.lastIndex); console.info(re.exec(email));
re.lastIndex = 0; console.log(re.test(email)); </script>
</body> </html>
|