js用r.test()而C#用regex.IsMatch()来验证正则。
js用r.test()而C#用regex.IsMatch()来验证正则。
大气象
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RegexTest.aspx.cs" Inherits="RegexTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>常用正则表达式总结</title>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function fCheck(){
//检查用户名
var uname = jQuery("#txtUserName").val();
if(uname == ""){alert('用户名不可为空!');return false;}
r=/^[\w\d]{4,16}$/;
if(!r.test(uname)){alert('用户名为4-16个字符!');return false;}
//检查密码
var upwd = jQuery("#txtPwd").val();
if(upwd == ""){alert('密码不可为空!');return false;}
r=/^.{6,14}$/;
if(!r.test(upwd)){alert('密码为6-14个字符!');return false;}
if(jQuery("#txtPwdConfirm").val()!=upwd){alert('两次输入的密码不一致!');return false;}
//检查邮箱
var uemail = jQuery("#txtEmail").val();
if(uemail==""){alert('电子邮件地址不能为空!');return false;}
r=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
if(!r.test(uemail)){alert('电子邮件地址格式不正确!');return false;}
return true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
用户名:
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
4-16个字符(数字,字母和下划线)<br />
密码及确认密码:<asp:TextBox ID="txtPwd" runat="server" TextMode="password" Width="80px"></asp:TextBox>
<asp:TextBox ID="txtPwdConfirm" runat="server" TextMode="password" Width="80px"></asp:TextBox>
<br />
电子邮件地址:
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>(请输入有效的邮件地址,当密码遗失时凭此领取)
<br />
<asp:Button OnClientClick="" ID="btnRegister" runat="server" Text="同意以下协议并注册" OnClick="btnRegister_Click" />
</div>
</form>
</body>
</html>
大气象
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
public partial class RegexTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/****************************************************
* ^匹配开始 $匹配结束
* {m,n}匹配从m到n个前面的表达式,比如[\w]{4,16}匹配4到16个字母
* .匹配除 "\n" 之外的任何单个字符。
* 要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
* [-+.]三个符号,只能有一个。
***************************************************/
protected void btnRegister_Click(object sender, EventArgs e)
{
//用户名为4-16个字符(数字,字母和下划线)
Regex regex = new Regex(@"^[\w\d]{4,16}$");
if(!regex.IsMatch(txtUserName.Text.Trim()))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('用户名为4-16个字符(数字,字母和下划线)。');</script>", false);
return;
}
//密码为6-14个字符!
regex = new Regex(@"^.{6,14}$");
if (!regex.IsMatch(txtPwd.Text.Trim()))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('密码为6-14个字符!');</script>", false);
return;
}
//密码为6-14个字符!
regex = new Regex(@"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
if (!regex.IsMatch(txtEmail.Text.Trim()))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('电子邮件地址格式不正确!');</script>", false);
return;
}
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script>alert('注册成功!请登录。');window.location.href='Login.aspx';</script>", false);
}
}