1

我想使用 java 脚本检查我的文本框是否包含特殊字符。为此,我使用以下代码

function CheckUserId() {
    var txt = document.getElementById('<%=TextBox1.ClientID%>').value;
    var regexp = "/^[a-zA-Z0-9]+$/";
    if (regexp.match(txt)) {
        alert("No special character ");
        return true;
    }
    else {
        alert("Special character");
        return false;
    }
    }

我在文本框 onblur 上调用这个 java 脚本函数。文本框代码如下

  <asp:TextBox ID="TextBox1" runat="server" onblur="CheckUserId()" ></asp:TextBox>

但它总是显示警告消息“特殊字符”。我的代码有什么问题?请帮我

4

4 回答 4

5

您的 if 语句中有错误的字符串和模式。javascript 匹配的语法是string.match(regexp). 请尝试:

if (txt.match(regexp))
于 2012-04-19T12:47:51.043 回答
2

除了其他人指出的,您还犯了另一个错误:var regexp = "/^[a-zA-Z0-9]+$/"是字符串,而不是 RegExp 对象。删除正则表达式周围的引号或使用var regexp = new RegExp("/^[a-zA-Z0-9]+$/")语法。

这是工作示例:http: //jsfiddle.net/LJdeE/

function CheckUserId() {
    var txt = document.getElementById('<%=TextBox1.ClientID%>').value;
    var reg = /^[a-zA-Z0-9]+$/;
    if (reg.test(txt)) {
        alert("No special character");
        return true;
    }
    else {
        alert("Special character");
        return false;
    }
}
于 2012-04-19T12:55:28.867 回答
0

它是(text.match(regex))不是 (regex.match(text))

于 2012-04-19T12:51:05.760 回答
0
^\s*([0-9a-zA-Z ]+)\s*$

试试这个正则表达式。我已经尝试过了它正在工作

于 2012-04-19T13:00:30.927 回答