[js中regexp简单的手机和邮箱正则表达式]Js中RegExp简单的手机和邮箱正则

更新时间:2019-08-19    来源:正则表达式    手机版     字体:

【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,提示!

本文来源:http://www.bbyears.com/aspjiaocheng/63126.html

热门标签

更多>>

本类排行