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 スクリプト関数を呼び出しています。TextBoxコードは次のとおりです

  <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 に答える