2017-12-28 23 views
-2

私は今興味をそそられた問題を解決しています。私はregexpを使って文字列をテストしていますが、trueを返してもfalseのイベントを返します。私はJavaScriptで実装しています。私はこの機能JavaScript RegExpテストが間違った値を返します

function isPhoneNumberValid(phoneNumber) { 
    return /^\+\d{12}$/.test(phoneNumber); 
} 

phoneNumber(例えば421123123123)の後+ 12個の数字の形式で可変である、を有します。私は/^\+[0-9]{12}$/のような正規表現のさまざまなバージョンで遊んだ。

https://www.regextester.com/21のようなサイトによれば、私のregexpは私が望む形式で動作しているはずですが、それでもなおfalseを返します。 +3が書かれたときにこの正規表現をテストしようとしたときに/^\+[0-9]/が返されました。問題は数字の数であると思いますか?

パラメータphoneNumberが正しく受信されているので間違いはないと思います。また、修飾語の組み合わせは役に立たなかった。ここで

はあなたに私はクラス.phoneNumberと入力タイプのテキストを持っているより多くの洞察力を与えるために、この機能のログ

function isPhoneNumberValid(phoneNumber) { 
    console.log('ph:'+phoneNumber); 
    console.log(/^\+\d{12}$/.test(phoneNumber)); 
} 

enter image description here

で、その後、私はからkeyupイベントを見てjqueryの機能を持っている、それは次のようになりますこの

$('.phoneNumber').on('keyup', function() { 
    if (isPhoneNumberValid($(this).val())) { 
     console.log('is valid'); 
    } else { 
     console.log('invalid'); 
    } 
}); 

上記の他の機能は既に説明しました。私はString()に値をラッピングしようとしました。

私は前に述べたように、このコードがそこで動作することを知っているので、オンライン環境でのライブサンプルがうまくいかない理由を明確にしようとしています。問題は、同じようなコピーがcodepenで動作しているにも関わらず、私のプロジェクトではうまくいきませんので、このようにしてしまう可能性があるのです。

+0

/^\+\d{'min',12}$/.test(phoneNumber)minを最小文字列の長さにしたい値に置き換えます –

+0

正規表現が12桁の正確な数字にマッチする@DeepakKumarTP 'ソリューションは完璧でなければならない! –

+1

http://jsbin.com/gixicavase/1/edit?js,console - 問題を再現できません。 – Quentin

答えて

0

問題はlatteテンプレートエンジンで発生しました。それには、

<script n:syntax="double"></script> 

が必要でした。

関連する問題