-4

最近このコードを学びましたが、このコードは期待どおりに機能していません。フォームの検証用です

function username_validation(name){
    var valid_name = /^[a-zA-Z0-9_]{5,30}$/;
    if(!valid_name.test(name)) 
     {         
         return false; 
     } 
     else 
     { 
         return true;
     } 


}
4

1 に答える 1

1

この関数をイベント リスナーにフックする必要があります。お気に入り :

<form onsubmit="username_validation(this.usernameTextfield.value);">

したがって、この関数は、特定のフォームが送信されるたびにトリガーされます。あなたの機能に問題はありません。

この線 :

var valid_name = /^[a-zA-Z0-9_]{5,30}$/;

RegExp オブジェクトを作成します。

それで :

valid_name.test(name)

nameがパターンと一致するかどうかをチェックしvalid_nameます。RegExp には、指定された文字列が RegExp パターンと一致するtest(s)場合に true を返すブール メソッドがあります。s

それを書くためのより良い方法は次のようになります:

function validate(name) {
    var r=/^[a-zA-Z0-9_]{5,30}$/;
    return r.test(name);
}

それが役に立てば幸い...

于 2012-12-17T15:34:00.787 に答える