1

以下の正規表現を使用して、アルファベット、数字、文字、+および-をチェックしました。

if (/[^a-z0-9\-\+]+$/i.test(value)) 
        {
            alert ("Only alphabets and numbers are allowed.");
            return;
        }

これは、特殊文字が使用されている場合のメッセージを示しています。しかし、私が直面している問題の1つは、値が特殊文字とアルファベットまたは数字の組み合わせである場合、この条件が満たされないことです。たとえば、値がの%$2場合、条件はtrueを返さず、メッセージを表示します。特殊文字が存在する場合、条件が満たされ、メッセージが表示されるようにしたいと思います。

4

2 に答える 2

2

$アンカーは使用しないでください。また、+あなたの場合、決勝戦は必要ありません。以下は、文字列に許可されていない文字が含まれているかどうかを確認します。

if (/[^a-z0-9\-\+]/i.test(value)) 
{
    alert ("Only alphabets and numbers are allowed.");
    return;
}

条件を逆にすることもできます。(空の文字列を許可するかどうかに応じて、*またはを使用+します。)以下は、文字列全体に許可された文字のみが含まれるかどうかを確認します。

if (!/^[a-z0-9\-\+]*$/i.test(value)) 
{
    alert ("Only alphabets and numbers are allowed.");
    return;
}
于 2012-11-20T11:28:40.457 に答える
0

$文字列の終わりに一致し$、あなたの場合は必要ありません

+前のトークンと1回以上一致し、

そしてそれはあなたの場合にも必要ではありません

 if (/[^a-z0-9\-\+]/i.test(value)) 
    {
        alert ("Only alphabets and numbers are allowed.");
        return;
    }
于 2012-11-20T11:32:53.157 に答える