2012-02-13 10 views
0

私は正規表現の男ではないので、私は間違いなくこれについて助けが必要です。スペースとの正規表現

私が望むのは、「username」で入力したユーザーにスペースが含まれていないかどうかを検証するための正規表現です。

現在、私はこのような構造を持っている:

if($('.username').val().length < 5) { 
    $(".user_account_validation").html("Too shorty.").css('background-color', 'red'); 
} else if() { 
} 

あなたは私のelse if()はまだ空で、その中で、私は私の検証を置きたいお気づきのように。ユーザー名にスペースがある場合は、対応するエラーメッセージを返します。ありがとう!

答えて

6

問題に直面した場合、「わかっている、私は正規表現を使用する」と思う人もいます。今、彼らには2つの問題があります。 - Jamie Zawinski

入力にスペースがある場合は、あなたが知りたいすべてがある場合は、次のように返します-1の入力には、スペース、およびそれ以外の場合は最初のスペースのインデックスが存在しない場合。

$('.username').val().indexOf(' '); 

正規表現が必要な場合は、最初の空白のインデックスを返します。そうでない場合は-1を返します。

$('.username').val().search(/\s/); 
+1

この質問はジェイミーのルールの完璧なカウンター例で使用することができます。これは、ここで一致する言語が実際には正規であるためです。 –

+0

@ NiklasB。私はRegexを使用するにはまともな場所であることを明記します。実際にOPが「どのように有効な入力を確認するか」と尋ねると、Regexを指していたでしょうが、引用はひどい"問題X、正規表現をどのように使用するのですか?"理想的には、Regexハンマーですべてを釘で打つのではなく、ツールボックスのすべてのツールをすべて見るべきです。 – ironchefpython

4

正規表現を使用する必要はありません。 $('.username').val().indexOf(' ') !== -1を使用して、空白が含まれているかどうかをテストできます。

コピー&貼り付けでタブを入力することはできませんが、サーバー側で検証する必要があるため、通常のユーザーがそこに入らないようにチェックするだけで十分です。

+2

タブ、改行などはどうですか? –

+1

実際に正規表現は本当にここに適合しますが、なぜそれを示唆しないのですか(特に質問されたので)? –

+0

コピー&ペーストやテキストエリアを使用しない限り、タブ/改行を入力することはできません。しかし、正規表現がすべてより良い*すべての空白をブロックしたい場合、あなたは正しいです。 – ThiefMaster

3

あなただけ' '

else if ($('.username').val().indexOf(' ') === -1) { 
    //do stuff 
} 

ためindexOfを使用していますがanywhiteスペースを一致させる必要がある場合、この

else if ($('.uername').val().match(/\s/) { 
    //do stuff 
} 
関連する問題