জাভাস্ক্রিপ্ট সহ ফোন নম্বরটি বৈধ করুন


143

আমি কিছু ওয়েবসাইটে এই কোডটি পেয়েছি এবং এটি পুরোপুরি কার্যকর হয়। এটি যাচাই করে যে ফোন নম্বরটি এই ফর্ম্যাটগুলির মধ্যে একটিতে রয়েছে:
(123) 456-7890 বা 123-456-7890

সমস্যাটি হ'ল আমার ক্লায়েন্ট (আমি জানি না কেন, ক্লায়েন্ট স্টাফগুলি) অন্য একটি ফর্ম্যাট যুক্ত করতে চায়, দশটি ক্রমাগত, এই জাতীয় কিছু: 1234567890

আমি এই নিয়মিত প্রকাশটি ব্যবহার করছি,

/^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/

এটি কীভাবে যুক্ত করতে পারি যে এটি অন্য ফর্ম্যাটটিকেও বৈধতা দেয়? আমি নিয়মিত অভিব্যক্তি দিয়ে ভাল না।



5
থাম্বের নিয়ম হিসাবে - ফোন নম্বরগুলি বৈধ করার চেষ্টা করা ব্যর্থতার সাথে ডومমড। বিভিন্ন দেশ এবং এক্সটেনশনের বিভিন্ন কাঠামোর সাথে কী, এটি একটি খুব কঠিন সমস্যা।
কোয়ান্টিন

1
এবং ফরাসী স্বরলিপি সম্পর্কে কি? "12 34 56 78 90" সংখ্যা ব্যতীত সমস্ত কিছু সরিয়ে ফেলুন (শুরুতে সম্ভবত প্লাস চিহ্ন ছাড়া) এবং দৈর্ঘ্যটি পরীক্ষা করুন।
thejh

আপনি করা উচিত নয় , আসলে, রেগুলার এক্সপ্রেশন ব্যবহার সঠিকভাবে বৈধকরণ ফোন নম্বর
ড্যান ড্যাসক্লেস্কু

উত্তর:


122

প্রথমে, আপনার ফর্ম্যাট বৈধকরণকারীর স্পষ্টতই কেবল NANP (দেশ কোড +1) সংখ্যার জন্য উপযুক্ত । আপনার অ্যাপ্লিকেশনটি উত্তর আমেরিকার বাইরে থেকে ফোন নম্বরযুক্ত কেউ ব্যবহার করবেন? যদি তা হয় তবে আপনি সেই ব্যক্তিকে পুরোপুরি বৈধ [আন্তর্জাতিক] নম্বর প্রবেশ করা থেকে বিরত রাখতে চান না।

দ্বিতীয়ত, আপনার বৈধতা ভুল। ন্যানপ নম্বরগুলি এমন ফর্ম নিয়ে যায় NXX NXX XXXXযেখানে N2-9 অঙ্কের এবং X0-9 অঙ্কের একটি সংখ্যা । অতিরিক্তভাবে, অঞ্চল-কোডগুলি এবং এক্সচেঞ্জগুলিতে কোনও ভৌগলিক অঞ্চল কোডের সংখ্যা (800, 888, 877, 866, 855, 900) ব্যতীতN11 বিশেষ পরিষেবাগুলির সাথে বিভ্রান্তি এড়াতে ফর্মটি (দুইটি দিয়ে শেষ করা ) নাও যেতে পারে ( এক্সচেঞ্জ ) হতে পারে ।N11

সুতরাং, আপনার রেজেক্সেক্সটি (123) 123 4566 নম্বরটি পাস করবে যদিও এটি কোনও বৈধ ফোন নম্বর নয়। আপনি প্রতিস্থাপন যে ঠিক করতে পারবো \d{3}সঙ্গে [2-9]{1}\d{2}

অবশেষে, আমি অনুভব করি যে আপনি কোনও ওয়েব ব্রাউজারে ব্যবহারকারী ইনপুটকে বৈধতা দিচ্ছেন। মনে রাখবেন যে ক্লায়েন্ট-পার্শ্বের বৈধতা কেবলমাত্র এমন একটি সুবিধা যা আপনি ব্যবহারকারীকে সরবরাহ করেন ; আপনার এখনও সার্ভারে সমস্ত ইনপুট (আবার) যাচাই করতে হবে।

টিএল; ডিআর ফোন নম্বর বা ইউআরএলগুলির মতো জটিল বাস্তব-বিশ্বের ডেটা বৈধ করার জন্য একটি নিয়মিত অভিব্যক্তি ব্যবহার করবেন না । একটি বিশেষায়িত গ্রন্থাগার ব্যবহার করুন ।


আমি সম্মত কারণ ফোন নাম্বারিং পরিকল্পনা আসলে পরিসীমা উপর ভিত্তি করে কাজ করে, যেমন 12300000 থেকে 12399999 (যে Regex বৈধকরণ ফোন নম্বরগুলিতে যথেষ্ট নয় numberingplans.com/... )

146

আমার পছন্দসই রেজেক্সটি হ'ল:

/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im

বৈধ বিন্যাস:

(123) 456-7890
(123)456-7890
123-456-7890
123.456.7890
1234567890
+31636363634
075-63546725


3
/ আইএম কি? গুগলে ব্যাখ্যাটি খুঁজে পাচ্ছি না :)
সারিন সুরিয়াকুন

7
@ সারিনসুরিয়াাকুন iএই অভিব্যক্তিটিকে সংবেদনশীল করে তোলে এবং mবহু-লাইন অনুসন্ধান করে
রদ্রিগো লেইট

44
সংখ্যার জন্য আপনার কেন মামলা-সংবেদনশীলতার দরকার হবে?
সলোমন ক্লসন

1
এই রেজেক্সটি দুর্দান্ত কারণ আপনি যদি ^শুরু এবং $শেষের দিকে সরিয়ে ফেলেন তবে এটি স্ট্রিংগুলির মাঝখানে ফোন নম্বরগুলিও খুঁজে পেতে পারে
হোবার্বুইকি

2
@darioxlz '123456789' কোনও ফোন
নম্বরটির

67

আপনি যদি 10 এবং মাত্র 10 ডিজিটের সন্ধান করেন তবে অঙ্কগুলি বাদে সবকিছু উপেক্ষা করুন-

   return value.match(/\d/g).length===10;

এই আমি পরামর্শ যাচ্ছি। সহজ ঝরঝরে. এবং খুব বেশি বৈধতা যাইহোক যাইহোক খারাপ জিনিস হতে পারে।
mwilcox

1
এটিই যাওয়ার সেরা উপায়। যদি না আপনি এটির ফর্ম্যাটটি সত্যই যত্ন না করেন তবে এগুলিই নিশ্চিত করে যে সংখ্যাটি আংশিকভাবে বৈধ কিনা, এবং একগুচ্ছ জব্বার নয়।
mdance

7
আপনার অর্থ ম্যাচ (/ \ d / g) মিলছে না (/ \ d /) বা দৈর্ঘ্য হবে 1 নয়, 10; এছাড়াও, খালি স্ট্রিংয়ের ম্যাচটি শূন্য। খুব কমপক্ষে এটি var m = value.match (/ \ d / g) হওয়া উচিত; রিটার্ন মি && মিঃ দৈর্ঘ্য === 10
ডগ

অথবা return (value.match(/\d/g) || []).length == 10বা আরও সরল (তবে সমান ত্রুটিযুক্ত) : return value.replace(/\D/g,'').length == 10.
রবিজি

এই এক মত আমি: /\D/gi.test(value)। হোয়াইটস্পেস, ড্যাশ ইত্যাদিসহ ডিজিট নয় এমন সবকিছু ...
গাস

33

আমি যা করব তা হ'ল বিন্যাসটি উপেক্ষা করুন এবং সংখ্যার সামগ্রীটি বৈধ করুন:

var originalPhoneNumber = "415-555-1212";

function isValid(p) {
  var phoneRe = /^[2-9]\d{2}[2-9]\d{2}\d{4}$/;
  var digits = p.replace(/\D/g, "");
  return phoneRe.test(digits);
}

ফর্ম্যাটিং উপেক্ষা করার বিষয়ে সম্মত হন, .ex, মোবাইল নম্বরগুলি XXXXX XXX XXX এর মতো স্পেস সহ উপস্থাপিত করা খুব সহজ তবে ফর্মগুলির জন্য ফাঁকা ছাড়াই ইনপুট প্রয়োজন, যেমন XXXXXXXXXX হিসাবে।
রবিজি 5'18

30
/^[+]*[(]{0,1}[0-9]{1,3}[)]{0,1}[-\s\./0-9]*$/g

(123) 456-7890
+ (123) 456-7890
+ (123) -456-7890
+ (123) - 456-7890
+ (123) - 456-78-90
123-456-7890
123.456.7890
1234567890
+31636363634
075-63546725

এটি একটি খুব আলগা বিকল্প এবং আমি এটিকে এভাবে রাখতে পছন্দ করি, বেশিরভাগ ক্ষেত্রে আমি এটি নিবন্ধকরণ ফর্মগুলিতে ব্যবহার করি যেখানে ব্যবহারকারীদের তাদের ফোন নম্বর যুক্ত করতে হবে। সাধারণত ব্যবহারকারীদের এমন ফর্মগুলির সাথে সমস্যা হয় যা কঠোর বিন্যাসের নিয়মগুলি প্রয়োগ করে, আমি ব্যবহারকারীকে পছন্দ করি যে এটি নম্বর এবং ফর্ম্যাটটি ডিসপ্লেতে পূরণ করতে বা এটি ডাটাবেসে সংরক্ষণের আগে পছন্দ করে। http://regexr.com/3c53v


3
উদাহরণস্বরূপ +41 (79) 123 45 67(সুইজারল্যান্ড) অনুমতি দেওয়ার জন্য রেজেক্স কিছুটা সংশোধিত হয়েছে :/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/g
রিমিগিয়াস স্টাল্ডার

এটি আমার পক্ষে বেশ উপযুক্ত বলে মনে হচ্ছে যেহেতু এটি খুব বেশি স্ট্রিং নয় এবং এটি সমস্ত আন্তর্জাতিক ফর্ম্যাটকে কভার করে বলে মনে হচ্ছে (এবং সুইজারল্যান্ডের ফিক্সের জন্য @ রিমিগিয়াস স্টাল্ডারকে ধন্যবাদ জানাই)
গাভিন

আপনি যদি একটি জাভা ব্যাকএন্ড থাকে, তাহলে আপনি থেকে ফোন নম্বর নিয়মমাফিককরণ যেমন যুক্ত করতে পারেন github.com/google/libphonenumber
Remigius Stalder

29

নিম্নলিখিত REGEX এই বিন্যাসের যে কোনও বৈধতা দেবে:

(123) 456-7890
123-456-7890
123.456.7890
1234567890

/^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/

3
আপনার পালাতে .হবে অন্যথায় এটি আপনার ইজেক্স ভেঙে একটি স্বেচ্ছাচারী চরিত্রের সাথে মেলে।
ক্রিস্টোফ

1
এটি আমাকে সঠিক দিকে নিয়ে গেছে। ধন্যবাদ! দুর্ভাগ্যক্রমে এই অভিব্যক্তিটিও মিলবে (1234567890 এবং 123) 4567890। ^ ((([0-9] {3})) | ([0-9] {3})) [- \ গুলি \।] [0-9] {3} [- \ গুলি \।]? [0-9] little 4} that এই সামান্য সমস্যার যত্ন নেয়।
জো হকিন্স

15

আমি আরও পরিষ্কার কিছু ব্যবহার করার পরামর্শ দেব (বিশেষত কে কোডটি বজায় রাখতে হবে তা ভেবে) ... কী সম্পর্কে:

var formats = "(999)999-9999|999-999-9999|9999999999";
var r = RegExp("^(" +
               formats
                 .replace(/([\(\)])/g, "\\$1")
                 .replace(/9/g,"\\d") +
               ")$");

স্পষ্ট টেম্পলেট থেকে কোথায় রেজিপেক্স নির্মিত? একটি নতুন যুক্ত করা তারপরে কোনও মস্তিষ্কের হতে পারে এবং এমনকি গ্রাহক নিজেও "বিকল্পগুলি" পৃষ্ঠায় এটি করতে সক্ষম হবেন।


15

যেখানে স্ট্রিং এই যেকোনো ফরমেট হতে পারে: 555-555-5555 (555-55555-5555 (555) 555-5555 555 555 5555 5555555555 1 555 555 5555

function telephoneCheck(str) {
  var isphone = /^(1\s|1|)?((\(\d{3}\))|\d{3})(\-|\s)?(\d{3})(\-|\s)?(\d{4})$/.test(str);
  alert(isphone);
}
telephoneCheck("1 555 555 5555");



9

এটি ব্যবহার করে দেখুন - এতে আন্তর্জাতিক ফর্ম্যাটগুলিরও বৈধতা রয়েছে।

/^[+]?(1\-|1\s|1|\d{3}\-|\d{3}\s|)?((\(\d{3}\))|\d{3})(\-|\s)?(\d{3})(\-|\s)?(\d{4})$/g

এই রেজেক্স নিম্নলিখিত ফর্ম্যাটটি যাচাই করে:

  • (541) 754-3010 ঘরোয়া
  • + 1-541-754-3010 আন্তর্জাতিক
  • 1-541-754-3010 মার্কিন যুক্তরাষ্ট্রে ডায়াল করা
  • 001-541-754-3010 জার্মানি থেকে ডায়াল করা
  • 191 541 754 3010 ফ্রান্স থেকে ডায়াল করা

6

/^\+?1?\s*?\(?\d{3}(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$/

যদিও এই পোস্টটি পুরানো তবে আমার অবদান রেখে যেতে চাই। এগুলি গ্রহণ করা হয়েছে: 5555555555 555-555-5555 (555-55555-5555 1 (555) 555-5555 1 555 555 5555 1 555-555-5555 1 (555) 555-5555

এগুলি গ্রহণ করা হয় না:

555-5555 -> এই ব্যবহারটি গ্রহণ করতে: ^\+?1?\s*?\(?(\d{3})?(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$

5555555 -> এই ব্যবহারটি গ্রহণ করতে: ^\+?1?\s*?\(?(\d{3})?(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$

1 555) 555-5555 123 ** & !! এসএসডিএফ # 55555555 (6505552368) 2 (757) 622-7382 0 (757) 622-7382 -1 (757) 622-7382 2 757 622-7382 10 (757) 622 -7382 27576227382 (275) 76227382 2 (757) 6227382 2 (757) 622-7382 (555) 5 (55?) - 5555

এই কোডটি আমি ব্যবহার করেছি:

function telephoneCheck(str) {
  var patt = new RegExp(/^\+?1?\s*?\(?\d{3}(?:\)|[-|\s])?\s*?\d{3}[-|\s]?\d{4}$/);
  return patt.test(str);
}

telephoneCheck("+1 555-555-5555");

এই Regex এর একমাত্র সমস্যা হল এতে কেবলমাত্র একটি ')' সঙ্গে বৈধ একটি ফোন স্ট্রিং বিবেচনায় অথবা শুধুমাত্র একটি '(' (মত "(555-555-5555") হল
happyZZR1400

5

এটি কাজ করবে:

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/

?চরিত্র প্রকাশ করে যে পূর্ববর্তী গ্রুপ মিলেছে করা উচিত শূন্য বা এক বার। গ্রুপটি (-|\s)একটি -বা একটি |চরিত্রের সাথে মিলবে । ?আপনার রেগেক্সে এই গোষ্ঠীর দ্বিতীয় উপস্থিতির পরে যুক্ত করা আপনাকে একটানা 10 সংখ্যার ক্রম মেলানোর অনুমতি দেয়।



2

প্রত্যেকের উত্তর দুর্দান্ত, তবে এখানে আমার মনে হয় কিছুটা আরও বিস্তৃত ...

এটি জাভাস্ক্রিপ্ট একক লাইনে একক সংখ্যার ম্যাচ ব্যবহারের জন্য লেখা হয়েছে:

^(?!.*911.*\d{4})((\+?1[\/ ]?)?(?![\(\. -]?555.*)\( ?[2-9][0-9]{2} ?\) ?|(\+?1[\.\/ -])?[2-9][0-9]{2}[\.\/ -]?)(?!555.?01..)([2-9][0-9]{2})[\.\/ -]?([0-9]{4})$

আপনি যদি শব্দের সীমানায় মিলতে চান তবে কেবল ^ এবং $ থেকে \ বি তে পরিবর্তন করুন

আমি এই সমাধানের কোনও পরামর্শ, সংশোধন বা সমালোচনাকে স্বাগত জানাই। আমি যতদূর বলতে পারি, এটি এনএএনপি ফর্ম্যাটের সাথে মেলে (ইউএসএ সংখ্যার জন্য - এটি তৈরি করার সময় আমি অন্যান্য উত্তর আমেরিকার দেশগুলিকে বৈধতা দিয়েছিলাম না), কোনও 911 ত্রুটি (এরিয়া কোড বা অঞ্চল কোডে হতে পারে না) এড়িয়ে চলে, মুছে ফেলা কেবলমাত্র সেই 555 নম্বর যা প্রকৃতপক্ষে অবৈধ (555 এর অঞ্চল কোড এর পরে 01xx যেখানে x = কোনও সংখ্যা)।


1

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/

?চরিত্র প্রকাশ করে যে পূর্ববর্তী গ্রুপ মিলেছে করা উচিত শূন্য বা এক বার। গ্রুপটি (-|\s)একটি -বা একটি |চরিত্রের সাথে মিলবে ।


1

আমাকে একমত হতে হবে যে ফোন নম্বরগুলি যাচাই করা একটি কঠিন কাজ। এই নির্দিষ্ট সমস্যা হিসাবে আমি থেকে regex পরিবর্তন করতে হবে

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)\d{4}$/

প্রতি

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/

কেবলমাত্র একমাত্র উপাদান যা অপ্রয়োজনীয় হয়ে ওঠে তা হ'ল শেষ ড্যাশ / স্পেস।


আমি সত্যিই আমার রেগেক্স গেমটি আপ করার চেষ্টা করছি! আমি "দ্য রেজেক্স কোচ" ব্যবহার করে আপনার পরামর্শ যাচাই করছি। আমি রেজেক্স (()? \ D {3} ())? (- | \ s)? \ D {3} (- | \ s)? \ D {4} এবং লক্ষ্যযুক্ত স্ট্রিং (123) ব্যবহার করছি? 456-7890 তবে কোনও কারণে এটি কেবল শেষ 7 ডিজিটটি দখল করছে। কোন ধারনা?
অ্যারন হ্যাথওয়ে

হ্যাঁ রেজেক্স মস্তিষ্কের উপর কিছুটা রুক্ষ ... এবং ধৈর্য। ঠিক আছে / / ^ [(]? (\ D {3}) [)]? [- | \ গুলি]? (\ D {3}) [- |] গুলি]? (\ D {4}) $ / দ্য পুরানো রেজেক্সের প্রথম অংশটি ভালভাবে কাজ করতে পারেনি: "(()? \ d {3} ())" (() মাঝের বন্ধনী আসলে রিজেক্স সিনট্যাক্সের অংশ হিসাবে দেখা হয়েছিল, চরিত্রগুলি অনুসন্ধান করার জন্য নয়
লুক ভেরোনৌ

1

আপনি যদি এই কোডের চেয়ে ইনপুট ট্যাগ ব্যবহার করেন তবে আপনাকে সহায়তা করবে। আমি এই কোডটি নিজের দ্বারা লিখি এবং আমার কাছে মনে হয় এটি ইনপুটটিতে ব্যবহার করার খুব ভাল উপায়। তবে আপনি নিজের ফর্ম্যাটটি ব্যবহার করে এটি পরিবর্তন করতে পারেন। এটি ব্যবহারকারীদের ইনপুট ট্যাগে তাদের ফর্ম্যাটটি সংশোধন করতে সহায়তা করবে।

$("#phone").on('input', function() {  //this is use for every time input change.
        var inputValue = getInputValue(); //get value from input and make it usefull number
        var length = inputValue.length; //get lenth of input

        if (inputValue < 1000)
        {
            inputValue = '1('+inputValue;
        }else if (inputValue < 1000000) 
        {
            inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, length);
        }else if (inputValue < 10000000000) 
        {
            inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, 6) + '-' + inputValue.substring(6, length);
        }else
        {
            inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, 6) + '-' + inputValue.substring(6, 10);
        }       
        $("#phone").val(inputValue); //correct value entered to your input.
        inputValue = getInputValue();//get value again, becuase it changed, this one using for changing color of input border
       if ((inputValue > 2000000000) && (inputValue < 9999999999))
      {
          $("#phone").css("border","black solid 1px");//if it is valid phone number than border will be black.
      }else
      {
          $("#phone").css("border","red solid 1px");//if it is invalid phone number than border will be red.
      }
  });

    function getInputValue() {
         var inputValue = $("#phone").val().replace(/\D/g,'');  //remove all non numeric character
        if (inputValue.charAt(0) == 1) // if first character is 1 than remove it.
        {
            var inputValue = inputValue.substring(1, inputValue.length);
        }
        return inputValue;
}

1

অ-লোকাল ফোন নম্বর (800 এবং 900 প্রকারের) নির্বাচন করার জন্য কেবল একটি সমাধান যুক্ত করতে চেয়েছিলেন।

(\+?1[-.(\s]?|\()?(900|8(0|4|5|6|7|8)\3+)[)\s]?[-.\s]?\d{3}[-.\s]?\d{4}

1

এই রেজি প্রাক্তনটি আন্তর্জাতিক ফোন নম্বর এবং মোবাইল সেল নম্বরগুলির একাধিক ফর্ম্যাটের জন্য উপযুক্ত।

এখানে নিয়মিত প্রকাশ: / ^ (+ {1} \ d {2,3}? S? [(] {1} \ d {1,3} [)] {1} \ s? \ D + | + \ ঘ {2,3} \ গুলি {1} \ D + | \ D +) {1} [\ গুলি | -] \ D + ([\ গুলি | -] \ D +) {1,2} $ /

এখানে জাভাস্ক্রিপ্ট ফাংশন

function isValidPhone(phoneNumber) {
    var found = phoneNumber.search(/^(\+{1}\d{2,3}\s?[(]{1}\d{1,3}[)]{1}\s?\d+|\+\d{2,3}\s{1}\d+|\d+){1}[\s|-]?\d+([\s|-]?\d+){1,2}$/);
    if(found > -1) {
        return true;
    }
    else {
        return false;
    }
}

এটি নিম্নলিখিত ফর্ম্যাটগুলি বৈধতা দেয়:

+44 07988-825 465 (স্থানের জায়গায় হাইফেনগুলির সংমিশ্রণ ব্যতীত কেবল একটি স্থান অবশ্যই +44 অনুসরণ করবে)

+44 (0) 7988-825 465 (স্পেসের জায়গায় হাইফেনের কোনও সংমিশ্রণ ব্যতীত (0) এর আগে বা পরে কোনও হাইফেনের অস্তিত্ব থাকতে পারে এবং (0) এর আগে বা পরে স্থানের অস্তিত্বের প্রয়োজন নেই)

123 456-789 0123 (স্পেসগুলির জায়গায় হাইফেনগুলির কোনও সংমিশ্রণ সহ)

123-123 123 (স্পেসগুলির জায়গায় হাইফেনগুলির সংমিশ্রণ সহ)

123 123456 (একটি হাইফেন দিয়ে স্থান প্রতিস্থাপন করা যেতে পারে)

1234567890

সমস্ত ফর্ম্যাটের জন্য কোনও ডাবল স্পেস বা ডাবল হাইফেন বিদ্যমান থাকতে পারে।


1

ফোন নম্বর বৈধ করুন + ফর্ম্যাট ডেটা রিটার্ন করুন

function validTel(str){
  str = str.replace(/[^0-9]/g, '');
  var l = str.length;
  if(l<10) return ['error', 'Tel number length < 10'];
  
  var tel = '', num = str.substr(-7),
      code = str.substr(-10, 3),
      coCode = '';
  if(l>10) {
    coCode = '+' + str.substr(0, (l-10) );
  }
  tel = coCode +' ('+ code +') '+ num;
  
  return ['succes', tel];
}

console.log(validTel('+1 [223] 123.45.67'));


1

এটা চেষ্টা কর

/ ^ (\ + + {0,}) (\ ঘ {0,}) ([(] {1} \ ঘ {1,3} [)] {0,}) {0,} (\ গুলি \ D + | \ + + \ ঘ {2,3} \ গুলি {1} \ D + | \ D +) {1} [\ গুলি | -] \ D + ([\ গুলি | -] \ D +) {1,2} ( \ গুলি) {0,} $ / জিএম

বৈধ বিন্যাস

  • (123) 456-7890
  • (123)456-7890
  • 123-456-7890
  • 1234567890
  • +31636363634
  • +3 (123) 123-12-12
  • +3 (123) 123-12-12
  • +3 (123) 1231212
  • +3 (123) 12312123
  • +3 (123) 123 12 12
  • 075-63546725
  • +7910 120 54 54
  • 910 120 54 54
  • 8 999 999 99 99

https://regex101.com/r/QXAhGV/1


{1}অকেজো, {0,}ভাল লেখা হয় *। কেন এই সমস্ত ক্যাপচার গ্রুপ ব্যবহার করছে? তারা প্রক্রিয়াটি ধীর করে দেয়।
টোটো

এটা ভাল না. কারণ আপনি চান হিসাবে অনেক নম্বর লিখতে পারেন।
মোহাম্মদ জাওয়াদ বড়টি

1

এই ফাংশনটি আমাদের পক্ষে ভালভাবে কাজ করেছে:

let isPhoneNumber = input => {

  try {
    let ISD_CODES = [93, 355, 213, 1684, 376, 244, 1264, 672, 1268, 54, 374, 297, 61, 43, 994, 1242, 973, 880, 1246, 375, 32, 501, 229, 1441, 975, 591, 387, 267, 55, 246, 1284, 673, 359, 226, 257, 855, 237, 1, 238, 1345, 236, 235, 56, 86, 61, 61, 57, 269, 682, 506, 385, 53, 599, 357, 420, 243, 45, 253, 1767, 1809, 1829, 1849, 670, 593, 20, 503, 240, 291, 372, 251, 500, 298, 679, 358, 33, 689, 241, 220, 995, 49, 233, 350, 30, 299, 1473, 1671, 502, 441481, 224, 245, 592, 509, 504, 852, 36, 354, 91, 62, 98, 964, 353, 441624, 972, 39, 225, 1876, 81, 441534, 962, 7, 254, 686, 383, 965, 996, 856, 371, 961, 266, 231, 218, 423, 370, 352, 853, 389, 261, 265, 60, 960, 223, 356, 692, 222, 230, 262, 52, 691, 373, 377, 976, 382, 1664, 212, 258, 95, 264, 674, 977, 31, 599, 687, 64, 505, 227, 234, 683, 850, 1670, 47, 968, 92, 680, 970, 507, 675, 595, 51, 63, 64, 48, 351, 1787, 1939, 974, 242, 262, 40, 7, 250, 590, 290, 1869, 1758, 590, 508, 1784, 685, 378, 239, 966, 221, 381, 248, 232, 65, 1721, 421, 386, 677, 252, 27, 82, 211, 34, 94, 249, 597, 47, 268, 46, 41, 963, 886, 992, 255, 66, 228, 690, 676, 1868, 216, 90, 993, 1649, 688, 1340, 256, 380, 971, 44, 1, 598, 998, 678, 379, 58, 84, 681, 212, 967, 260, 263],
      //extract numbers from string
      thenum = input.match(/[0-9]+/g).join(""),
      totalnums = thenum.length,
      last10Digits = parseInt(thenum) % 10000000000,
      ISDcode = thenum.substring(0, totalnums - 10);

    //phone numbers are generally of 8 to 16 digits
    if (totalnums >= 8 && totalnums <= 16) {
      if (ISDcode) {
        if (ISD_CODES.includes(parseInt(ISDcode))) {
          return true;
        } else {
          return false;
        }
      } else {
        return true;
      }
    }
  } catch (e) {}

  return false;
}

console.log(isPhoneNumber('91-9883208806'));


0

সাধারণ নিয়মিত প্রকাশ: /\b\d{3}[-.]?\d{3}[-.]?\d{4}\b/g

ফর্ম্যাটটি দেখুন, আশা করি এটি কার্যকর হয়:
444-555-1234
f: 246.555.8888
মি: 1235554567


দয়া করে আপনার উত্তর ফর্ম্যাট করুন (কোড ব্লকের জন্য চারটি স্পেস ইন্ডেন্ট হিসাবে ব্যবহার করুন)। আপনার কোডের একটি ব্যাখ্যাও এর গুণমান বাড়িয়ে তুলবে।
নান্দার স্পিডসট্রা

0
\\(?\d{3}\\)?([\-\s\.])?\d{3}\1?\d{4}

এটি চলক বিন্যাসের যে কোনও ফোন নম্বরকে বৈধতা দেবে:

\\(?\d{3}\\)? প্রথম সংখ্যাটি বন্ধনী দ্বারা সংযুক্ত বা না পাওয়া যায়।

([\-\s\.])? এই বিভাজক চরিত্রগুলির কোনও খুঁজে পাওয়া যায় বা না পাওয়া যায়

\d{3} 3 সংখ্যার সন্ধান করে

\1প্রথম মিলিত বিভাজক ব্যবহার করে - এটি নিশ্চিত করে যে বিভাজকগুলি একই রকম। সুতরাং (000) 999-5555 এখানে বৈধতা দেবে না কারণ সেখানে একটি স্থান এবং ড্যাশ বিভাজক রয়েছে, সুতরাং কেবল "" 1 "সরান এবং বিভাজক উপ-প্যাটার্নের সাথে প্রতিস্থাপন করুন (এটি করার ফলে অ-মানক বিন্যাসগুলিও বৈধ হবে)। তবে যাইহোক আপনি ব্যবহারকারী ইনপুট জন্য ফর্ম্যাট ইঙ্গিত করা উচিত।

\d{4} 4 সংখ্যার সন্ধান করে

যাচাই:

  • (000) 999 5555
  • (000) -999-5555
  • (000) .999.5555
  • (000) 999-5555
  • (000) 9995555
  • 000 999 5555
  • 000-999-5555
  • 000.999.5555
  • 0009995555

বিটিডাব্লু এটি জাভাস্ক্রিপ্টের জন্য তাই ছাঁটাই দ্বিগুণ।


0

এই js ফাংশন চেষ্টা করুন। এটি মেলে সত্য এবং মিথ্যা যদি এটি রেফ ব্যর্থ হয় তা প্রত্যাবর্তন করে

function ValidatePhoneNumber(phone) {
        return /^\+?([0-9]{2})\)?[-. ]?([0-9]{4})[-. ]?([0-9]{4})$/.test(phone);
}


0

অঙ্ক বাদে সব কিছু উপেক্ষা করুন।

আমি যা ব্যবহার করি তা এখানে:

// USA phones should contain at least 10 digits. For Ukrainian phones it's OK to have only 9 digits, without leading 0 and country code prefix: [+380] 88 888-88-88.
String.prototype.isValidPhone = function(digitsCount) {
  var str = this.trim().match(/\d/g);
  return str && str.length >= (digitsCount || 10); // default is at least 10 digits
}

-1

এটা চেষ্টা কর

/^[\+]?\d{2,}?[(]?\d{2,}[)]?[-\s\.]?\d{2,}?[-\s\.]?\d{2,}[-\s\.]?\d{0,9}$/im

বৈধ বিন্যাস:

  1. (123) 456-7890
  2. (123)456-7890
  3. 123-456-7890
  4. 123.456.7890
  5. 1234567890
  6. +31636363634
  7. +3 (123) 123-12-12
  8. +3 (123) 123-12-12
  9. +3 (123) 1231212
  10. +3 (123) 12312123
  11. 075-63546725

আপনার উত্তর সহ ব্যাখ্যা অন্তর্ভুক্ত নিশ্চিত করুন। যদিও এটি কার্যকর হতে পারে, সম্পূর্ণ এবং প্রাসঙ্গিক তথ্য কীভাবে এবং কেন করতে হবে তা ব্যাখ্যা করা গুরুত্বপূর্ণ। জবাব দেওয়ার জন্য ধন্যবাদ :)
ম্যাজিক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.