3

テキスト、スペース、数字のみを入力できることを確認して、入力フィールドを検証しようとしています。これを行う最も簡単な方法は、次のような正規表現を使用することだと思いました。

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

より具体的には、アンダースコア文字がこのフィールド内にないことを確認する必要があります (これは非常に重要です)。これをテストしたところ、適切に機能していないように見えますが、構文的に正しくないためではなく、間違った目的で正規表現を使用している可能性があるため、これはもっとそうだと思います.

その入力ボックスに入力するときに「アンダースコア」文字を除外する関数を書く方が簡単でしょうか?

編集:これを少し明確にするために、文字、数字、スペースのみを受け入れたいと思います。

4

3 に答える 3

6

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

/^[a-zA-Z0-9 ]+$/
于 2012-04-16T10:49:46.380 に答える
2

この正規表現を使用してみてください:

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

i は大文字と小文字を区別しないためのものです。

編集:

/^[a-z0-9 ]+$/i
于 2012-04-16T10:57:10.103 に答える
0

スペースのチェックのようには見えません。また、数字または文字で終わる文字列のみをチェックしています。

これを試して:

function checkVal() {
var input = document.getElementById("input").value; 
if (input.match(/^[ a-zA-Z0-9]+$/) == null) {
    alert("error");
    }
}
于 2012-04-16T10:51:14.567 に答える