2012-04-16 9 views
3

私は、テキスト、スペース、および数字だけを入力できるように入力フィールドを検証しようとしています。この目的でRegexを使用できますか?

function checkVal() { 
var input = document.getElementById("input").value; 
if (input.match(/[a-zA-Z0-9]+$/) == null) { 
    alert("error"); 
    } 
} 

は、具体的には、私はこれは本当に重要である(下線文字は、このフィールド内にないことを確認する必要があります。私はこれを行う最も簡単な方法は、このような何かを行うことによって、正規表現を使用しているだろうと思いました)。これをテストすることで、正しく動作しているようには見えませんが、誤った目的のために正規表現を使用していて、構文的に正しくないためではないので、これはもっとそうだと思います。

入力ボックスに「アンダースコア」文字を入力しないで除外する機能を作成する方が簡単でしょうか?

EDIT:これを少し明確にするために、私は文字、数字、スペースだけを受け入れたいと思っています。

+0

@sch私がすべき文字、数字、およびスペース、私はこれを反映するために質問を更新する! – zik

+0

個人的には、私は 'value.match(/.../) 'の代わりに' /.../。test(value) 'を使います。あなたの質問が正当化されるべきか、またはタイピングをブロックしようとするのであれば、それを検証してください。入力は、フォームフィールド値を入力するための1つの方法です。少なくとも検証では、アンダースコアは許可されていない(と_why_)ことを知らせる/思い出させることができます。 –

答えて

6

文字列の先頭、^(スペース)を含めることを忘れないでください:

/^[a-zA-Z0-9 ]+$/ 
+0

ありがとう、ほぼ忘れてしまった – zik

0

それはスペースのためにあなたのチェックのようには見えません、また、あなただけの文字列をチェックしています数字や文字で終わります。

これを試してみてください:

function checkVal() { 
var input = document.getElementById("input").value; 
if (input.match(/^[ a-zA-Z0-9]+$/) == null) { 
    alert("error"); 
    } 
} 
2

試して、この正規表現を使用する:

/^[a-zA-Z0-9 ]+$/ 

私はincasesensitiveのためである:

EDIT:申し訳ありません

/^[a-z0-9 ]+$/i 
+2

'i'修飾子を使うと'/^ [a-z0-9] + $/i'で十分です – KooiInc

+0

あなたの右はA-Zを忘れました – WolvDev

関連する問題