1

0 から 9、a から z、A から Z、および次の文字のみを受け入れる文字列をテストするための JavaScript 正規表現を作成したいと思います: + * . 全長は 1 ~ 10 文字です。

これは私がしました :

var reg = /[0-9A-Za-z\+\*\.]{1,12}/;
if(!reg.test($('#vat_id').val())) {
    return false;
}

しかし、これはうまくいかないようです。

http://www.regular-expressions.info/javascriptexample.htmlでテストしました。 「$av」と入力すると、「成功した一致」が返されます。

間違いはどこですか?

編集:正規表現は今では良いようです:

var reg = /^[0-9A-Za-z\+\*\.]{1,10}$/;

しかし、なぜ私はそれを機能させることができないのですか?

http://jsfiddle.net/R2WZT/を参照

4

2 に答える 2

7

正規表現を「アンカー」して、一致がテスト文字列の最初から始まり最後で終わることを示さない場合、それは、パターンが文字列のどこにでも見つかるかどうかを確認したいことを意味すると見なされます。ストリング。

var reg = /^[0-9A-Za-z\+\*\.]{1,12}$/;

^at the begin とat the end を使用$して、文字列全体がパターンに一致する必要があることを示します。つまり、一致に寄与する文字以外の文字が文字列に表示されないことです。

于 2013-07-11T15:06:07.713 に答える
1

開始と終了に一致するように設定していません:

var reg = /^[0-9A-Za-z\+\*\.]{1,10}$/;
于 2013-07-11T15:06:12.570 に答える