灵活的使用正则表达式,可以使得程序既简洁,又清晰。因为正则表达式可以把需要多行代码才能实现的验证功能,只用一行代码就完成了。下面我列举了八个最常用的正则表达式,与诸君分享。
(注:代码均使用JavaScript语言进行描述)
1. 验证文件名及其扩展名
function validate_filename(str) {
str = str.replace(/^/s|/s$/g, ""); //trims string
return /^[a-z][/w]?/.(asp|html|htm|shtml|php)$/i.test(str)
}
2. 验证Email地址
function validate_email(str) {
return /^([/w]+)(/.[/w]+)*@([/w/-]+)(/.[/w]{2,7})(/.[a-z]{2})?$/i.test(str);
}
3. 验证数字
function validateNumeric( str ) {
var objRegExp = /(^-?/d/d*/./d*$)|(^-?/d/d*$)|(^-?/./d/d*$)/;
return objRegExp.test(str);
}
4. 验证日期
function validate_date(str) {
return /^/d{1,2}(/-|//|/.)/d{1,2}/1/d{4}$/.test(str);
}
5. 验证时间(HH:MM或HH:MM:SS或HH:MM:SS.MMM)
function validate_time(str) {
return /^([1-9]|1[0-2]):[0-5]/d(:[0-5]/d(/./d{1,3})?)?$/.test(str);
}
6. 验证IP地址(IPv4)
function validate_ip(str) {
return /^/d{1,3}/./d{1,3}/./d{1,3}/./d{1,3}$/.test(str);
}
7. 验证邮政编码
function validate_zip(str) {
return /(^/d{6}$)|(^/[1-9]-/d{2}$)/.test(str);
}
包含中国大陆和台湾省,香港、澳门不使用邮政编码。
8. 验证中文字符
匹配中文字符的正则表达式:^[/u4e00-/u9fa5]+$
匹配中文、英文、数字及下划线:^[/u4e00-/u9fa5_a-zA-Z0-9]+$