【www.bbyears.com--正则表达式】
创建 RegExp 对象的语法:
var obj=new RegExp(pattern,attributes);
代码如下事例1:
var pattern=/a/;
document.write(pattern.exec("asdas"));
事例2:
var obj=new RegExp("a");
document.write(obj.exec("asdas"));
事例1和事例2的执行结果是相同的;
参数
参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attributes 是一个可选的字符串,包含属性 "g"(执行全局匹配查找所有匹配而非在找到第一个匹配后停止。)、"i":执行对大小写不敏感的匹配。 和 "m":执行多行匹配。,分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
返回值
一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。
如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当pattern 是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。
抛出
SyntaxError - 如果 pattern 不是合法的正则表达式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。
TypeError - 如果 pattern 是 RegExp 对象,但没有省略 attributes 参数,抛出该异常。
RegExp 对象方法:
1、test():检索字符串中指定的值。返回 true 或 false。
代码如下 var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
2、exec():检索字符串中指定的值。返回找到的值,并确定其位置。
方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。
3、compile():既可以改变检索模式,也可以添加或删除第二个参数。
代码如下var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
patt1.compile("d");
document.write(patt1.test("The best things in life are free"));
下这种情况的应用场景很多,有时候用户名必须是手机或者邮箱,其他不对,就用到了这个判断。
其实这种正则表达式也是比较简单的,下面我就讲解一下:
邮箱的正则:
代码如下^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$
手机的正则
代码如下^1[3|4|5|8]\d{9}$
两个正则的结合,只需要“I”就可以了,如下:
代码如下 (^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$)|(^1[3|4|5|8]\d{9}$) //邮箱和手机同样的道理,有时候在填写物流信息的时候,需要留联系方式,联系方式可以是手机或者电话,那么正则同理也很简单,可以如下写:
代码如下 (^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$)|(^0(10|2[0-5789]|\\d{3})\\d{7,8}$) //手机和电话若你运用Validform,找到Validform_v5.3.2.js这个文件,找到如下代码:
代码如下dataType:{
"*":/[\w\W]+/,
"*6-16":/^[\w\W]{6,16}$/,
"n":/^\d+$/,
"n6-16":/^\d{6,16}$/,
"s":/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]+$/,
"s6-18":/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/,
"p":/^[0-9]{6}$/,
"m":/^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$/,
"e":/^\w+([-+."]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
"url":/^(\w+:\/\/)?\w+(\.\w+)+.*$/
},
将上面的正则添加在后面就可以了!
或者你也可以自己判断,方法如下:
代码如下 var reg = new RegExp("(^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$)|(^0(10|2[0-5789]|\\d{3})\\d{7,8}$)");
if(!reg.test(phone_mob)){
hiAlert("请输入正确的手机号码", "请注意",function(){
$("#phone_mob").focus();
});
return false;
}
上面代码我运用的是hiAlert插件,您也可以自己直接用alert,提示!