在项目开发时,js正则匹配经常用到,以前都是查查守则,很少去记录,过一段时间再次用的时候又要去搜,多次重复很麻烦。所以我决定将记录下来,下次用得时候方便使用。js匹配规则:string.match(正则式);在js中很多都是string.的形式,比如你要截取字符串:string.substr(0,1),0代表从第几个字符开始,1表示截取的长度。string表示获取的字符。这里讲一下match、exec、test的区别,match 是 String 对象的一个方法,所以用法是string.match(正则式),
例:match
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = str.match(regexp);
//rs= Array('A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e');
而test和exec都是正则对象的方法,用法跟match相反,正则式.[test/exec](string),test返回一个布尔值,匹配上返回true,没匹上则为false,如果你只需要匹配的布尔值,多用test,相反则用match或者exec。
例:test
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs = regexp.test(str);
// rs = true; boolean
例:exec
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;
var rs;
while ((rs = regexp.exec(str)) != null)
{
document.write(rs);
document.write(regexp.lastIndex);
document.write("<br />");
}
OUTPUT
---------------------------------
A 1
B 2
C 3
D 4
E 5
a 27
b 28
c 29
d 30
e 31