0

私は現在、本当に本当に奇妙な問題に苦しんでいます。

  • 電話番号フォームフィールドがあります
  • onblur を起動し、値が有効かどうかを検証する関数があります
  • ぼかしを行うたび、値が正しく、値が変更されていない場合でも、false として検証されます!

小さなテストケースをセットアップしました: http://jsfiddle.net/U3jwx/2/

フィールド内をクリックしてから外に出すだけです。複数回クリックしてください。

それはどうしてですか?価値も変わらない!私はそれが検証機能と関係があると思います...

4

1 に答える 1

0

呼び出しの間に正規表現の lastIndex を 0 にリセットします。

var validatePhoneNumber = function(val) {        
        var re = /^\+([0-9]{1,3})([\-\s]{0,1})([0-9]{2,6})([\-\s]{0,1})([0-9\-\s]{0,})$/gi;
        re.lastIndex = 0;
        return re.test(val);
};
于 2011-02-10T15:55:11.697 に答える