首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

ajax利用正则表述验证表单,无法做中文验证,数字字母却正常,不解,抓狂!

2013-09-12 
ajax利用正则表达验证表单,无法做中文验证,数字字母却正常,不解,抓狂!!遇到一个问题,利用Ajax和正则表达验

ajax利用正则表达验证表单,无法做中文验证,数字字母却正常,不解,抓狂!!
遇到一个问题,利用Ajax和正则表达验证前台页input输入的东西,验证数字字母时能够成功,但是输入中文就没有反应了。。。。

果断贴出菜鸟代码

项目前台


<head runat="server">
    <title></title>
    <link href="StyleSheet.css" rel="Stylesheet" type="text/css"/>
    <script src="yanzheng.js" language="JavaScript" type="text/javascript"></script><%--调用写异步ajax的JS文件--%>
</head>
<body>
    <form id="form1" runat="server">
        <div class="message">
            <table>
                <tr>
                    <td class="Writing" align="right"><asp:Label ID="Label1" class="LabelClass" runat="server" Text="昵称:"></asp:Label></td>
                   <td class="Box"><input id="w_name" class="TextBoxStyle"
onkeyup="CheckUserName(this.value)"/></td> <%--这里放一个input获取用户输入--%>          <td><div id="msg"></div></td><%--这里放一个DIV显示ajax处理回调后的结果--%
                </tr>
            </table>
        </div>
    </form>
</body>


项目用到的JS文件


var xmlHttp;
 //声明XMLHttpRequest对象
function createXMLHttpRequest() { 
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}

//处理发送请求
function CheckUserName() {
    createXMLHttpRequest();
    var strName = document.getElementById("w_name").value;
    var url = "Handler.ashx?strUserName=" + strName;


    xmlHttp.open("GET", url, true);
    xmlHttp.onreadystatechange = ShowResult;
    xmlHttp.send(null);
}

//处理回调
function ShowResult() {
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {
            var bRet = xmlHttp.responseText;
            if (bRet == "0") {
                msg.innerHTML = '用户名存在!';
                msg.style.color = 'green';
            }
            else if (bRet == "1") {
                msg.innerHTML = '用户名长度必须在3到15之间!';
                msg.style.color = 'red';
            }
            else {
                msg.innerHTML = '用户名不存在!';
                msg.style.color = 'red';
            }
        }
    }
}



项目用到的ashx文件

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;

public class Handler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        string flag = string.Empty;
        string strUsername = context.Request.QueryString[0];
        if (!IsValidUsername(strUsername))
        {
            flag = "1";


        }
        else if (!IsUsernameExist(strUsername))
        {
            flag = "2";
        }
        else
        {
            flag = "0";
        }
        context.Response.Write(flag);
    }

    private bool IsUsernameExist(string strUsername)//匹配数据库中的数据
    {
        bool bRet = false;
        string sqltr = "Data Source=CHUNCHUN;Database=tb_newss;User ID=sa;Password=123321";
        string oo = "select * from Table_1 where name='" + strUsername + "'";
        SqlConnection con = new SqlConnection(sqltr);
        con.Open();
        SqlCommand dbCommand = new SqlCommand(oo, con);
        dbCommand.ExecuteNonQuery();
        SqlDataAdapter da = new SqlDataAdapter(oo, con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        if (ds.Tables[0].Rows.Count == 0)
        {
            return bRet;
        }
        else
        { return true; }
    }

    private bool IsValidUsername(string strUsername)//正则表达式
    {
        //return (System.Text.RegularExpressions.Regex.IsMatch(strUsername, @"^(\w{3,15})$"));
        return (System.Text.RegularExpressions.Regex.IsMatch(strUsername, @"^[\u4e00-\u9fa5]{1,}$"));
    }
    public bool IsReusable {
        get {


            return false;
        }
    }

}

正则 表单 ajax
[解决办法]
CheckUserName() 中 strUser应该编码吧!

热点排行