0

誰でも検証番号の正規表現を教えてもらえますか

  1. 最小 6 桁または最大 15 桁の数字
  2. (),-,#(最初の場所にのみ、その後に数字が続く場合は含まれる可能性があります),/,+

例えば。

(079) 22861851
(079)22861851
079 22861851
22861851
079-26408300 / 8200
079 264 083 00 
9429527462
+919427957462
 #9427957462

1つの正規表現式でtrueを検証するために、上記のすべての数値を検証したい..誰か助けてくれる?

私はこれを試しました

var phone_patternIndia = /^((\+){0,1}91(\s){0,1}(\-){0,1}(\s){0,1}){0,1}\d{2}(\s){0,1}(\-){0,1}(\s){0,1}[1-9]{1}[0-9]{7}$/;


var phone_patternUsa=/^([0-9]( |-)?)?(\(?[0-9]{3}\)?|[0-9]{3})( |-)?([0-9]{3}( |-)?[0-9]{4}|[a-zA-Z0-9]{7})$/;

var phone_patternUsa1=/^[\\(]{0,1}([0-9]){3}[\\)]{0,1}[ ]?([^0-1]){1}([0-9]){2}[ ]?[-]?[ ]?([0-9]){4}[ ]*((x){0,1}([0-9]){1,5}){0,1}$/;

しかし、常に機能しているわけではありません..だから他のパターンで行くことにしました..

var phone_pattern=/^((\d{3}-?|(\d{3}))\s*\d{7}($|\s*/\s*\d{4}$)|\ d{3}\s\d{3}\s\d{3}\s\d{2}|+\d{12}|#\d{10})$/;

if (phone_pattern.test(personal_phone))
        {

            $("#restErrorpersonalphone").html('');
            $("#personal_phone").removeClass('borderColor');

        } else {
            $("#restErrorpersonalphone").html('Please enter valid phone number');
            $("#personal_phone").addClass('borderColor');
            flag = false;
        }

その常に別の状態になります

4

2 に答える 2

2

これをより小さな正規表現に分割し、それぞれを個別にテストするか、文字を取り除いてからテストすることを強くお勧めしますが、質問に役立つはずの私の頭の上の大まかなサンプルです(テストされておらず、リストされた例のみをカバーしています)。 ..

(079) 22861851 => /^(\d{3}-?|\(\d{3}\))?\s*\d{7}(\s*\/\s*\d{4})?$/
(079)22861851  => same...
079 22861851   => same...
22861851       => same...
079-26408300 / 8200 => same...
079 264 083 00 => /^\d{3}\s\d{3}\s\d{3}\s\d{2}$/
9429527462     => same as first regex
+919427957462  => \^\+\d{12}$/
 #9427957462   => /^#\d{10}$/

だから、それらを組み合わせるだけ...

/^(\d{3}-?|\(\d{3}\))?\s*\d{7}($|\s*\/\s*\d{4}$)|\d{3}\s\d{3}\s\d{3}\s\d{2}|\+\d{12}|#\d{10})$/
于 2013-02-07T05:41:39.990 に答える
1

問題への最も簡単なアプローチは、数字以外をすべて排除し、数字のみの長さを使用して検証することです。

var digits=personal_phone.replace(/[^0-9]/g,'');
var isValid=false;
if (digits && digits.length>=10) {
    // You can fine-tune whether it starts with 1, matches an area code, etc here
    isValid=true;
}
于 2013-02-07T06:09:47.590 に答える