JavaScript正则表达式可以使用正则表达式的特殊符号(/ /)来声明,也可以采用正则表达式对象(RegExp)来声明。
1、使用正则表达式符号
正则表达式符号为”/ /”,即为2个斜杠,中间为匹配规则。JavaScript中类似的特殊符号还有数组“[]”, 对象“{}”。
示例:
function println(str){ document.writeln(str “<br/>”); } function test1(){ var reg = /.*.(jpg|jpeg|png|gif)$/; var str = ‘121%llskljfls.jpg2’; println(str.match(reg)); println(reg.test(str)); } function test1b(){ var reg = /.*.(jpg|jpeg|png|gif)$/i; var str = ‘121%llskljfls.JPG’; println(str.match(reg)); println(reg.test(str)); } function test2(){ var str = ‘121%llskljfls.jpg’;
var reg = new RegExp(‘/.*.(jpg|jpeg|png|gif)$/’,’i’); println(str.match(reg)); println(reg.test(str)); println(‘使用new RegExp()方式,不能再添加斜杠(“/”)’); }
使用i参数,则忽略大小写。竖线为或选择符,意即括号中的模式匹配上任何一种皆可。
2、使用正则表达式对象
使用正则表达式对象时,匹配规则不再需要“/ /”(2个斜杠),如果加上,结果就不对了。 function println(str){ document.writeln(str “<br/>”); }
function test3(){ println(‘——————-test3———————–‘); var str = ‘121%llskljfls.jpg’;
var reg = new RegExp(‘.*.(jpg|jpeg|png|gif)$’,’i’); println(str.match(reg)); println(reg.test(str)); println(‘——————-test3———————–‘); } function fileExtMatch(filename){ var allowFileExt = [‘jpg’,’jpeg’,’png’,’gif’]; var str = allowFileExt.join(‘|’); println(‘str:’ str); var reg = new RegExp(‘.*.(‘ str ‘)$’,’i’); return reg.test(filename); } function test4(){ println(‘——————-test4———————–‘); var strs = ‘121%llskljfls.jpg’; var result = fileExtMatch(strs); println( ‘fileExtMatch match result:’ result); println(‘——————-test4———————–‘); }