0

regexこのフォーラムには、関数に関する数百 (またはおそらく数千) の質問があることを知っています。私はいくつかを読んで相談しましたが、すべての推定により、答えがあるはずであり、私の機能は機能するはずですが、そうではありません.

チェックの1つが英数字のみを許可する関数を構築しようとしました。

コードの要約版は次のとおりです。

function functionName() {
    var x = $("#inputId").val();

    //trying to locate any/all non alphanumeric characters & spaces
    var regex = /^[^0-9a-zA-Z\s]+$/g 

    if ( x.indexOf(regex) >= 0 ){
        alert("message");
        return false;
    }
}

誰かが私がどこで間違っているのか知っていますか?

ありがとう

4

3 に答える 3

4

を使用しないでくださいindexOf。を使用する必要がありますtest。これは、あなたが使用している少し面白い正規表現でもあります。無効な文字列ではなく、有効な文字列に一致するように以下を変更しました。

function functionName(){
    var x = $("#inputId").val();

    var regex = /^[a-zA-Z0-9]+$/g;

    if ( x.test(regex) ){
        alert("Only contains alphanumeric characters. No punctuation or spaces!");
    } else {
        return false;
    }
}
于 2013-05-26T06:22:51.473 に答える
1

正規表現は、完全に無効な文字で構成される文字列のみに一致します。あなたが本当に欲しいのは、無効な文字が少なくとも1つある場合に一致する1つです

var regex = /[^0-9a-zA-Z\s]/;
if (regex.test(x)) ...
于 2013-05-26T06:32:27.317 に答える
0

最後の「}」がありません

于 2013-05-26T06:22:05.113 に答える