JavaScript中使用正则表达式
- 使用直接量写法
以斜杆表示开始和结束:var regex = /^[a-zA-Z]+$/;
,创建一个内容为^[a-zA-Z]+$
的正则表达式,验证英文字母
var str = document.getElementById("str").value.trim();//获取指定id的内容,去除空格 var regex = /^[a-zA-Z]+$/; // 直接量正则表达式 if(!regex.test(str)){ alert("请输入正确的英文字母!"); }
2.使用内置构造函数生成
通过实例化得到对象:var regex = new RegExp('^[a-zA-Z]+$');
,创建一个内容为^[a-zA-Z]+$
的正则表达式,验证英文字母,等价于上面直接量方式var str = document.getElementById("str").value.trim();//获取指定id的内容,去除空格 var regex = new RegExp('^[a-zA-Z]+$'); // 构造函数 if(!regex.test(str)){ alert("请输入正确的英文字母!"); }
3. 下面是JS常用正则表达式
JS验证代码:
// 验证帮助 var verifyUtils = {
// 验证输入的内容是否是空 isNull:function(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /\S/; if(!regex.test(str)){ alert("文本框不能为空,请输入内容!"); } }, // 验证输入的字符是否是英文字母 isLetter:function(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^[a-zA-Z]+$/; if(!regex.test(str)){ alert("请输入正确的英文字母!"); } // 验证日期格式是否为YYYY-MM-DD格式 },isDate:function(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; var r = str.match(regex); // 使用match方法获取指定字符串的值 if(r==null){ alert("请输入正确的日期格式!"); } // 验证日期格式是否为YYYY-MM-DD hh:mm:ss格式 },isDateTime:function(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; var r = str.match(regex); // 使用match方法获取指定字符串的值 if(r==null){ alert("请输入正确的日期格式!"); } // 验证整数 },isInteger:function(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^[-+]?\d*$/; if(!regex.test(str)){ alert("请输入正确的整数!"); } // 验证双精度 },isDouble:function(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^[-\+]?\d+(\.\d+)?$/; if(!regex.test(str)){ alert("请输入正确的小数!"); } // 验证中文 },isChinese(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^[\u0391-\uFFE5]+$/; if(!regex.test(str)){ alert("请输入正确的中文!"); } // 验证邮箱 },isEmail(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; if(!regex.test(str)){ alert("请输入正确的邮箱格式!"); } // 验证手机号 },isPhone(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^1[3456789]\d{9}$/; if(!regex.test(str)){ alert("请输入正确的手机号!"); } // 验证身份证 },isIdCard(idStr){ var str = document.getElementById(idStr).value.trim(); var regex = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/; if(!regex.test(str)){ alert("请输入正确的身份证号码!"); } } };
正则验证代码如下:
验证字母:/^[a-zA-Z]+$/
验证长度为3的字符:/^.{3}$/
验证由26个英文字母组成的字符串:/^[A-Za-z]+$/
验证日期YYYY-MM-DD:/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/
验证邮编:/^\d{6}$/
验证日期格式YYYY-MM-DD hh:mm:ss:/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
验证整数:/^[-+]?\d*$/
验证小数:/^[-\+]?\d+(\.\d+)?$/
验证中文:/^[\u0391-\uFFE5]+$/
验证邮箱:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
验证手机号:/^1[3456789]\d{9}$/
验证身份证:/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/
表达式分析:
“/”代表一个正则表达式;
“^”代表字符串的开始位置,“$”代表字符串的结束位置;
“?”代表匹配前面的字符一个或零个,所以这里0?的意思是手机号码可以以0开头或不以0开头。