使用JavaScript时,常用正则表达式在页面对数据进行筛选判断,以下介绍两种常用的正则表达式的使用方法,并给出一些常用的模板:
方法一:使用RegExp方法构建正则表达式,此时正则表达式为字符串形式
注意点:如果使用字符串,字符串里反斜杠是转义字符,例如\d会变成d,因此要用两个\\d避免被转义
例:验证邮箱的合法性
<script type="text/javascript">
function checkForm() {
if($("#email").val()==""){
$("#error").html("邮箱不能为空!");
return false;
}
//var emailType = "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"; //字符串方法
var emailType = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; //非字符串方法,区别就是两端的/和转义字符
var emailRe = new RegExp(emailType);
if ($("#email").val().match(emailRe) == null) {
$("#error").html("请输入正确格式的邮箱地址!");
return false;
}
}
</script>
其他正则表达式:
"^\\d+$" //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$" //正整数
"^((-\\d+)|(0+))$" //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$" //负整数
"^-?\\d+$" //整数
"^\\d+(\\.\\d+)?$" //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数
"^(-?\\d+)(\\.\\d+)?$" //浮点数
"^[A-Za-z]+$" //由26个英文字母组成的字符串
"^[A-Z]+$" //由26个英文字母的大写组成的字符串
"^[a-z]+$" //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
"^\\w+$" //由数字、26个英文字母或者下划线组成的字符串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$" //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$" //url
"^(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)$" //18位身份证号
"^1[3,5,8]\\d{9}$" //手机号,13、15、18开头
方法二:直接构建正则式并使用test验证方法
例:验证手机号
<script type="text/javascript">
function checkForm() {
var mobile = document.getElementById("mobile").value;
if (mobile == null || mobile == "") {
document.getElementById("error").innerHTML = "手机号不能为空!";
return false;
} else {
var mobileType = /^1[3,5,8]\d{9}$/; //非字符串方法,两端加上/,转义字符只要一个\
if (!mobileType.test(mobile)) {
alert("请输入正确格式的手机号!");
return false;
}
return true;
}
}
</script>
其他正则表达式:
/^\d+$/ //非负整数(正整数 + 0)
/^[0-9]*[1-9][0-9]*$/ //正整数
/^((-\d+)|(0+))$/ //非正整数(负整数 + 0)
/^-[0-9]*[1-9][0-9]*$/ //负整数
/^-?\d+$/ //整数
/^\d+(\.\d+)?$/ //非负浮点数(正浮点数 + 0)
/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/ //正浮点数
/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/ //非正浮点数(负浮点数 + 0)
/^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/ //负浮点数
/^(-?\d+)(\.\d+)?$/ //浮点数
/^[A-Za-z]+$/ //由26个英文字母组成的字符串
/^[A-Z]+$/ //由26个英文字母的大写组成的字符串
/^[a-z]+$/ //由26个英文字母的小写组成的字符串
/^[A-Za-z0-9]+$/ //由数字和26个英文字母组成的字符串
/^\w+$/ //由数字、26个英文字母或者下划线组成的字符串
/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/ //email地址
/^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/ //url
/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/ //18位身份证号
/^1[3,5,8]\d{9}$/ //手机号,13、15、18开头