原文地址:http://javascript.info/tutorial/regexp-introduction
简介
正则表达式有非常强大的用于字符串“查找”和“替换”的功能。在JS中,它被集成在字符串方法:search, match和replace中。
正则表达式,由一个pattern(匹配规则)和flags(修饰符—可选)组成。
一个基本的正则匹配跟子串匹配一样。斜杠"/"包围的字符串可以创建一个正则表达式。
1 regexp = /att/ 2 3 str = "Show me the pattern!" 4 5 alert( str.search(regexp) ) // 13
上面例子中,str.search方法返回了正则式"att"在字符串"Show me the pattern!"中的位置。
在实际运用中,正则式可能会更加复杂。下面的正则式匹配email地址:
1 regexp = /[a-z0-9!$%&‘*+\/=?^_`{|}~-]+(?:\.[a-z0-9!$%&‘*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b/ 2 3 str = "Let‘s find an [email protected] here" 4 5 alert( str.match(regexp) ) // [email protected]
str.match方法输出匹配的结果。
学完本教程以后,你不仅能完全理解上面的正则式,还能创造更复杂的正则式。
在JS控制台中,你可以直接调用str.match方法测试正则式
1 alert( "lala".match(/la/) )
在这里,我们会让demo短一点,并利用方便的showMatch函数输出正确的匹配结果:
1 showMatch( "Show me the pattern!", /att/ ) // "att"
1 function showMatch(str, reg) { 2 var res = [], matches; 3 while(true) { 4 matches = reg.exec(str) 5 if (matches === null) break 6 res.push(matches[0]) 7 if (!reg.global) break 8 } 9 alert(res) 10 }
接下来的教程里,我们将开始学习正则式的语法。
时间: 2024-10-05 04:27:44