js和asp.net正则表达式验证email、数字等的差别

亮术网 2020-06-19 本网原创

asp.net 2.0 起也提供了用正则表达式验证数字、联系电话、email 等功能,但在某些情况下不太好验证,如,验证下拉列表框 select 选择了值没有、验证含有中英文文本的长度。此时就要用 js 来完成,不管用 asp.net 还是用 js,正则表达式的写法都是一样的;不过在 js中,把正则表达式赋给变量就不能用双引号括起来,这就是它们的唯一差别。下面就看看分别用 asp.net 和 js 验证 email 和数字应该怎么写。

 

一、正则表达式验证email

假如需要验证的输入 email 文本框如下:

<asp:TextBox ID="tbEmail" runat="server" MaxLength="100" />

 

1、asp.net 验证代码

<asp:RegularExpressionValidator ID="revEmail" runat="server" ControlToValidate="tbEmail" Display="Dynamic" ErrorMessage="Email有误!" ValidationExpression="(?:\w+\.?)*\w+@(?:\w+\.)+\w+" />

 

2、js验证代码

function isEmail(text)
  {
    var exp = /^(?:\w+\.?)*\w+@(?:\w+\.)+\w+$/;
    return exp.test(text);
  }

两种验证方法,正则表达式完全一样,只是在 js 中,把正则表达式赋给变量 exp 时要用 /^ $/ 括起来。

 

 

二、正则表达式验证数字

假如需要验证的输入数字文本框如下:

<asp:TextBox ID="tbNumber" runat="server" MaxLength="12" />

 

1、asp.net 验证代码

<asp:RegularExpressionValidator ID="revNumber" runat="server" ControlToValidate="tbNumber" Display="Dynamic" ErrorMessage="输入的不是数字!" ValidationExpression="[0-9]{1,3}" />

 

2、js验证代码

function isNumber(text)
  {
    var exp = /^[0-9]{1,3}$/;
    return exp.test(text);
  }

两种验证方法,区别跟验证 email 一样。

 

验证电话的正则表达式为:(\d+-)?(\d{4}-?\d{7}|\d{3}-?\d{8}|^\d{7,8})(-\d+)?

验证QQ的为:[0-9]{4,13}

只要把正则表达式取代上述 asp.net 中的 ValidationExpression 值和 js 代码中的 exp 值,就可以验证电话和QQ了,验证其它的也一样。