ریگولر ایکسپریشنز کے ساتھ جاوا اسکرپٹ میں فون نمبرز کی توثیق کریں۔

ریگولر ایکسپریشنز کے ساتھ جاوا اسکرپٹ میں فون نمبرز کی توثیق کریں۔

تعارف

چاہے آپ کو اس کا احساس ہو یا نہ ہو، ڈیٹا ہماری روزمرہ کی زندگی کا ایک اہم حصہ بن گیا ہے۔ کھانا آن لائن آرڈر کرنے سے لے کر بلیوں کے کھانے کی تلاش تک، ہم مسلسل ڈیٹا بھیجتے اور وصول کر رہے ہیں۔ ویب ایپلیکیشنز کے ڈویلپرز کے طور پر، یہ ہماری ذمہ داری ہے کہ ہم اس بات کو یقینی بنائیں کہ صارف کے ان پٹ مخصوص فارمیٹ میں ہوں تاکہ ڈیٹا بیس ڈیٹا کو صحیح طریقے سے سمجھے، اور ایپلیکیشن مضبوط رہے۔

فون نمبر کی توثیق اہم ہے کیونکہ یہ اس بات کو یقینی بناتا ہے کہ ڈیٹا کو پورے ڈیٹا بیس میں ایک مستقل شکل میں محفوظ کیا گیا ہے۔ مثال کے طور پر، صارفین کو اس بارے میں وضاحت کی ضرورت ہو سکتی ہے کہ آیا انہیں اپنے فون نمبر سے پہلے ملک کا کوڈ داخل کرنا چاہیے۔ جگہ پر مناسب توثیق کے ساتھ، صارفین آسانی سے تعین کر سکتے ہیں کہ آیا اس کی ضرورت ہے۔ اسی طرح، صارف کا تجربہ ایک مستقل فارمیٹ کے ساتھ بہتر ہوتا ہے، جیسا کہ آپ جانتے ہیں کہ صارفین سے کیا توقع رکھنا ہے اور اس کے مطابق منطق کو لاگو کر سکتے ہیں۔ یہ صارفین کے لیے ناقص تجربہ ہو گا اگر کوڈ بعد کے مرحلے میں متضاد ڈیٹا کی وجہ سے ٹوٹ جاتا ہے۔

ریگولر ایکسپریشن پیٹرن میچنگ کے لیے طاقتور ٹولز ہیں۔ وہ آپ کے استعمال کے معاملے کے لحاظ سے مختلف اقسام کے پیٹرن سے ملنے کے لیے لچک فراہم کرتے ہیں۔ مزید برآں، ریگولر ایکسپریشنز لینگویج-ایگنوسٹک ہوتے ہیں، جو آپ کی توثیق کی منطق کو مزید پورٹیبل بناتے ہیں، کیونکہ آپ بنیادی توثیق کو آسانی سے مربوط کر سکتے ہیں۔ JavaScript میں regex کے ساتھ کام کرنا ایک سیدھا سا کام ہے۔

یہ مضمون آپ کو یہ سمجھنے میں مدد کرے گا کہ آپ کی درخواست کے لیے فون نمبروں کی توثیق کرنے کے لیے ریگولر ایکسپریشنز کی طاقت کو کیسے استعمال کیا جائے۔ آپ ملک کے کوڈز کے ساتھ فون نمبروں کی توثیق کرنے کے لیے ایک سادہ JavaScript فنکشن لکھیں گے۔

باقاعدہ اظہار کیا ہے؟

سادہ الفاظ میں، ایک ریگولر ایکسپریشن دی گئی سٹرنگ میں پہلے سے طے شدہ پیٹرن سے میل کھاتا ہے۔ یہ پروگرامنگ زبانوں میں بڑے پیمانے پر استعمال ہوتا ہے اور بنیادی طور پر ایک مخصوص فارمیٹ کے ان پٹ کی توثیق کے لیے استعمال ہوتا ہے۔ مزید برآں، ریگولر ایکسپریشنز کا استعمال عام طور پر مخصوص نمونوں کی تلاش، تقسیم اور متبادل کے لیے کیا جاتا ہے۔

فرض کریں کہ آپ کسی دستاویز میں ای میل پتہ تلاش کرنا چاہتے ہیں۔ ای میل پتہ کوئی بھی پتہ ہو سکتا ہے، مخصوص نہیں۔ ایک سادہ اظہار لکھنے سے آپ کو پیٹرن کو تیزی سے تلاش کرنے میں مدد ملے گی کیونکہ آپ پہلے سے ہی ای میل ایڈریس کی ساخت کو جانتے ہیں۔

ایک باقاعدہ اظہار مختلف قسم کے پیٹرن کو ظاہر کرنے کے لیے خصوصی حروف کا استعمال کرتا ہے۔ مثال کے طور پر:

  • . (ڈاٹ) ایک خاص حرف ہے جو کسی بھی حرف سے میل کھا سکتا ہے۔
  • * (ستمہ) پچھلے حرف سے 0 یا اس سے زیادہ بار میل کھاتا ہے۔
  • + (پلس) پچھلے حرف سے ایک یا زیادہ بار میل کھاتا ہے۔
  • ? (سوال کا نشان) پچھلے حرف کو اختیاری بناتا ہے۔
  • [abc] کسی بھی کردار سے میل کھاتا ہے۔ a, b، یا c.
  • (abc) حروف کو ایک ساتھ گروپ کرتا ہے۔
  • ^ (کیریٹ) لائن کے آغاز سے میل کھاتا ہے۔
  • $ (ڈالر) لائن کے آخر سے میل کھاتا ہے۔

یہ چند ایک ہیں۔ اگر آپ گہرائی میں غوطہ لگانا چاہتے ہیں اور مزید نمونوں کے بارے میں جاننا چاہتے ہیں تو آپ حوالہ دے سکتے ہیں۔ مائیکروسافٹ سے یہ دستاویز.

آئیے ایک ریگولر ایکسپریشن بناتے ہیں جو چیک کرتا ہے کہ آیا نمبروں کا دیا ہوا سیٹ پانچ ہندسوں کا زپ کوڈ ہے۔ اظہار لکھنا شروع کرنے کے لیے، ہم استعمال کریں گے۔ ^ (کیریٹ) کا نشان، کیونکہ یہ لائن کے آغاز سے میل کھاتا ہے۔ ایک باقاعدہ اظہار میں، d کسی بھی ہندسے سے میل کھاتا ہے، اور گھوبگھرالی منحنی خطوط وحدانی کے اندر ایک عدد ({}) منحنی خطوط وحدانی کے اندر دی گئی بار کی تعداد سے بالکل مماثل ہے۔ اوپر کی فہرست سے، ہم جانتے ہیں کہ $ لائن کے آخر کو ملانے کے لیے استعمال کیا جاتا ہے۔

اس معلومات کو یکجا کرنے سے، ہمیں اس طرح کا باقاعدہ اظہار ملتا ہے:

/^d{5}$/

اب، آئیے اظہار کو بہتر طور پر سمجھنے کے لیے نیچے دیے گئے گرافک کا جائزہ لیں۔

پانچ ہندسوں کے زپ کوڈ سے ملنے کے لیے باقاعدہ اظہار

پانچ ہندسوں کے زپ کوڈ سے ملنے کے لیے باقاعدہ اظہار

اب جب کہ ہمیں ریگولر ایکسپریشنز اور ان کی عمومی ساخت کی بنیادی سمجھ ہے، یہ جاننے کا ایک اچھا وقت ہے کہ جاوا اسکرپٹ فنکشن میں ان تاثرات کو کیسے لاگو کیا جا سکتا ہے۔

جاوا اسکرپٹ ریگولر ایکسپریشنز

جاوا اسکرپٹ ہے۔ سب سے مشہور پروگرامنگ زبان ڈویلپرز کے درمیان. چونکہ تقریباً تمام ویب ایپلیکیشنز کو JavaScript کی ضرورت ہوتی ہے، اس لیے یہ سمجھنا بہت ضروری ہے کہ اس زبان میں ریگولر ایکسپریشنز کو کس طرح استعمال کیا جا سکتا ہے۔

جاوا اسکرپٹ میں، RegExp آبجیکٹ پیٹرن میچنگ کے لیے استعمال ہوتا ہے۔ اس چیز کو دو طریقوں سے استعمال کیا جا سکتا ہے:

  • لفظی اشارے کا استعمال کرتے ہوئے، جہاں ایک پیٹرن کو دو فارورڈ سلیش کے درمیان فارمیٹ کیا جاتا ہے۔
  • کنسٹرکٹر اشارے کا استعمال کرتے ہوئے، جہاں یا تو سٹرنگ یا a RegExp اعتراض منظور ہے

لفظی اشارے کو اس طرح استعمال کیا جاسکتا ہے:

const expr = /^d{5}$/i;

دوسری طرف، کنسٹرکٹر اشارے کے ساتھ، آپ کو استعمال کرنے کی ضرورت ہوگی۔ RegExp اس کی ایک مثال بنانے کے لیے کنسٹرکٹر۔ یہاں یہ کیسا لگتا ہے:

const expr = new RegExp(/^d{5}$/, "i");

آپ RegExp آبجیکٹ کے بارے میں مزید پڑھ سکتے ہیں۔ سرکاری MDN دستاویزات. اب، آئیے فون نمبر کی توثیق کی اہمیت اور فون نمبر کے مختلف اجزاء کو دریافت کرتے ہیں۔

فون نمبر کی توثیق اور اجزاء

اپنے ڈیٹا بیس میں فون نمبرز کو محفوظ کرتے وقت کلائنٹ کی طرف سے فون نمبرز کی تصدیق بہت ضروری ہے۔ مناسب توثیق کے بغیر، آپ کا کوڈ غیر متوقع طرز عمل کا مظاہرہ کر سکتا ہے۔

بہترین طرز عمل، صنعت کے لیے منظور شدہ معیارات، اور چیٹ شیٹ کے ساتھ Git سیکھنے کے لیے ہمارے ہینڈ آن، عملی گائیڈ کو دیکھیں۔ گوگلنگ گٹ کمانڈز کو روکیں اور اصل میں سیکھ یہ!

مثال کے طور پر، فرض کریں کہ آپ ایک ایسی سروس استعمال کر رہے ہیں جس کے لیے فون نمبر کے ساتھ ملک کا کوڈ درکار ہے، لیکن آپ کے صارفین تصدیق کی کمی کی وجہ سے انہیں شامل نہیں کر رہے ہیں۔ اب، آپ کے پاس صرف نمبر ہے۔ بغیر ملک کا کوڈ، اور ایس ایم ایس ٹیکسٹ پیغامات بھیجنے والی سروس اس کی وجہ سے ناکام ہو سکتی ہے۔ یہ صرف ایک فرضی منظرنامہ ہے۔ دیگر مسائل آپ کی درخواست کو بھی کریش کر سکتے ہیں۔ فرنٹ اینڈ میں اپنے ڈیٹا کو صحیح طریقے سے ہینڈل کرنا بہت ضروری ہے، اس بات کو یقینی بناتے ہوئے کہ آپ اپنے ڈیٹا بیس میں صاف اور مستقل ڈیٹا محفوظ کرتے ہیں۔

عام طور پر، ایک فون نمبر چار حصوں پر مشتمل ہوتا ہے:

  • ملک کا کوڈ: پہلے 1 سے 3 ہندسے (ملک پر منحصر ہے) فون نمبر کے ملک کی وضاحت کرتے ہیں۔ یہ کوڈ کال کو درست ملک تک پہنچانے کی اجازت دیتا ہے۔ ملک کا کوڈ 0 سے شروع نہیں ہو سکتا۔

آپ فی الحال جس مضمون میں ترمیم کر رہے ہیں اس کا عنوان ہے "جاوا اسکرپٹ میں فون نمبرز کو باقاعدہ اظہار کے ساتھ درست کریں"۔ ترمیم کرنے کے لیے متن کا حصہ:

  • ایریا کوڈ: شہر یا ڈائلنگ کوڈ کے نام سے بھی جانا جاتا ہے، نمبر کا یہ حصہ کال کو ملک کے اندر صحیح جغرافیائی علاقے تک لے جانے میں مدد کرتا ہے۔ کچھ ممالک میں، جیسے ریاستہائے متحدہ، ایریا کوڈز کسی خاص سروس کے لیے فون نمبرز کے مخصوص سیٹ کی بھی نشاندہی کر سکتے ہیں۔ مزید برآں، شمالی امریکہ میں، ایریا کوڈ 0 یا 1 سے شروع نہیں ہو سکتا۔
  • ٹیلی فون کا سابقہ: نمبروں کا یہ سلسلہ ٹیلی فون کمپنی کی طرف سے ایک مخصوص مرکزی دفتر یا ٹیلی فون ایکسچینج کو تفویض کیا جاتا ہے، جس سے مخصوص جغرافیائی علاقے یا محلے کو مزید تنگ کیا جاتا ہے۔
  • لائن نمبر: یہ وہ منفرد نمبر ہے جو کسی گھرانے یا کاروبار کے لیے مخصوص فون لائن کو سابقہ ​​علاقے میں تفویض کیا گیا ہے۔ نمبر کا یہ حصہ عام طور پر اس بات کو یقینی بناتا ہے کہ کسی ملک، علاقے اور سابقہ ​​میں ہر فون نمبر منفرد ہو۔

ملکی کوڈ کو چھوڑ کر، باقی حصوں کو ملانے سے دس ہندسوں کا فون نمبر بنتا ہے جہاں ایریا کوڈ اور ٹیلی فون کا سابقہ ​​تین ہندسوں کا ہوتا ہے، اور لائن نمبر چار ہندسوں کا ہوتا ہے۔

آئیے اب جاوا اسکرپٹ فنکشن لکھنے کی طرف بڑھتے ہیں جو کہ ریگولر ایکسپریشنز کا استعمال کرتے ہوئے ان معیارات کی بنیاد پر فون نمبر کی توثیق کرتا ہے۔

فون نمبر کی توثیق کے لیے ایک RegEx بنائیں

ہم فون نمبر کی بنیادی ساخت کو پہلے ہی سمجھ چکے ہیں۔ ہم نے ریگولر ایکسپریشنز اور جاوا اسکرپٹ میں ان کے استعمال کے بارے میں بھی سیکھا ہے۔ اس سیکشن میں، ہم ایک سادہ جاوا اسکرپٹ فنکشن لکھیں گے جو دیے گئے فارمیٹ کے فون نمبروں کی توثیق کرتا ہے:

COUNTRY_CODE-AREA_CODE-TELEPHONE_PREFIX-LINE_NUMBER

مثال کے طور پر، ہمارے فنکشن کے لیے ایک درست فون نمبر اس طرح ہوگا۔ +123-456-789-1234، لیکن نہیں +012-123-456-7890 or +12-123-456-789چونکہ یہ فون نمبرز فون نمبرز کے اصولوں پر عمل نہیں کرتے ہیں جن پر ہم نے پہلے بات کی تھی۔

اب، آئیے ریگولر ایکسپریشن لکھنے میں کودتے ہیں۔ سب سے پہلے، آئیے چیک کریں کہ آیا ملک کا کوڈ 1 سے 3 ہندسوں کا ہے اور صفر سے شروع نہیں ہوتا ہے۔

باقاعدہ اظہار کے آغاز کی نشاندہی کرنے کے لیے، کیریٹ (^)، پھر تصدیق کریں کہ پلس شروع میں موجود ہے۔ اس مقصد کے لیے آئیے استعمال کرتے ہیں۔ +، جو اس سے مماثل ہوگا کہ پلس شروع میں موجود ہے۔ اب، یہ یقینی بنانے کے لیے کہ ملکی کوڈ کے ہندسے ایک سے تین ہندسوں کے درمیان ہیں اور پہلا ہندسہ صفر نہیں ہے، ہم کچھ اس طرح لکھ سکتے ہیں: [1-9]{1}[0-9]{0,2}. یہاں ، [1-9]{1} واضح کرتا ہے کہ 1 سے 9 تک کوئی بھی ہندسہ بالکل ایک بار موجود ہو سکتا ہے، اور اسی طرح، [0-9]{0,2} اشارہ کرتا ہے کہ 0 سے 9 تک کوئی بھی ہندسہ صفر سے دو بار موجود ہو سکتا ہے۔

الگ کرنے والے کے لیے، ہم ایک شامل کر سکتے ہیں۔ - (ہائیفن) نمبر کے حصوں کے درمیان۔ ایک - ملکی کوڈ کی توثیق کے بعد شامل کیا جا سکتا ہے۔ تو، اس وقت، regex اس طرح لگتا ہے:

^+[1-9]{1}[0-9]{0,2}-$

۔ $ آخر میں لائن کے آخر کی وضاحت کرتا ہے۔ اب، ایریا کوڈ کے لیے، یہ کافی مماثل ہوگا۔ ایک ایریا کوڈ صفر یا ایک سے شروع نہیں ہو سکتا۔ تو، پہلا حصہ ہو جائے گا [2-9]{1}. یہ مماثل ہے کہ پہلا نمبر 2 اور 9 کے درمیان ہے۔ یہ مماثلت ایک بار ہوتی ہے۔ پھر، باقی کوڈ کے لیے، ہم لکھ سکتے ہیں۔ [0-9]{2}. یہ یقینی بنائے گا کہ پہلے ایک کے بعد بالکل دو ہندسے ہیں، اور ہر ہندسے کے لیے، رینج 0 اور 9 کے درمیان ہے۔ دوبارہ، آخر میں ہائفن الگ کرنے والا شامل کریں۔

اب، مکمل regexp اس طرح نظر آئے گا:

^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-$
|----Country Code---|-|---Area Code--|-|

آئیے دوبارہ ٹیلی فون کے سابقہ ​​کو چیک کرنے کے لیے اسی پیٹرن کا استعمال کریں۔ آئیے مان لیں کہ ٹیلی فون کا سابقہ ​​بھی صفر یا ایک سے شروع نہیں ہو سکتا۔ لہذا، شامل کرنا [2-9]{1}[0-9]{2} اور ایک ہائفن دوبارہ اس طرح کا اظہار کرے گا:

^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-$
|----Country Code---|-|---Area Code--|-|--Tel Prefix--|-|

اب صرف ایک حصہ باقی رہ گیا ہے لائن نمبر، جو بالکل چار کی لمبائی کے ساتھ کوئی بھی ہندسہ ہو سکتا ہے۔ یہ دوسرے کے مقابلے میں آسان ہے۔ اظہار ہے۔ [0-9]{4}.

مکمل اظہار حسب ذیل ہے:

^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$
|----Country Code---|-|---Area Code--|-|--Tel Prefix--|-|-Line-|

آپ نے گھوبگھرالی منحنی خطوط وحدانی کے کثرت سے استعمال کو دیکھا ہوگا۔ وہ منحنی خطوط وحدانی کے اندر فراہم کردہ مثالوں سے ملنے کے لئے استعمال ہوتے ہیں۔ اگر یہ ایک مخصوص ہندسہ ہے، جیسے {1}، یہ بالکل ایک بار پچھلے پیٹرن سے مماثل ہوگا۔ تاہم، اگر یہ ایک رینج ہے، جیسے {0, 2}، یہ میچوں کی کم از کم اور زیادہ سے زیادہ تعداد کی وضاحت کرتا ہے۔ تو، کے معاملے میں {0, 2}، یہ کم از کم صفر بار اور زیادہ سے زیادہ دو بار کے پیٹرن سے مماثل ہوگا۔

پیٹرن تیار ہے. اب ہم ایک سادہ JavaScript فنکشن لکھ سکتے ہیں تاکہ یہ چیک کیا جا سکے کہ آیا فون نمبر ریگولر ایکسپریشن کا استعمال کرتے ہوئے درست ہے یا نہیں۔ یہاں فنکشن ہے:

function validatePhoneNumber(phoneNumber) { const pattern = new RegExp("^+[1-9]{1}[0-9]{0,2}-[2-9]{1}[0-9]{2}-[2-9]{1}[0-9]{2}-[0-9]{4}$"); if (pattern.test(phoneNumber)) { console.log("Phone number is valid"); return true; } else { console.log("Phone number is not valid"); return false; }
} validatePhoneNumber("+123-456-789-1234"); validatePhoneNumber("+0-123-456-7890"); validatePhoneNumber("+12-012-123-1234"); 

فنکشن کافی سیدھا ہے۔ یہ ان پٹ کے طور پر ایک فون نمبر لیتا ہے۔ ریگولر ایکسپریشن پیٹرن کو ایک متغیر کے اندر محفوظ کیا جاتا ہے جسے کہا جاتا ہے۔ pattern. پیٹرن کو RegExp کنسٹرکٹر کا استعمال کرتے ہوئے اور کنسٹرکٹر کو ایک پیرامیٹر کے طور پر ایکسپریشن منتقل کرتے ہوئے فوری بنایا جاتا ہے۔ پھر، ہم استعمال کرکے فون نمبر کی جانچ کرتے ہیں۔ test آبجیکٹ میں دستیاب طریقہ۔ if-else بیان کا استعمال کرتے ہوئے، ہم چیک کرتے ہیں کہ آیا فون نمبر ٹیسٹ پاس کرتا ہے۔ اگر ایسا ہوتا ہے تو، ہم صحیح واپس آتے ہیں اور ایک کنسول پیغام بھیجتے ہیں کہ Phone number is valid. بصورت دیگر، یہ غلط لوٹاتا ہے اور ایک کنسول پیغام دکھاتا ہے جو اس بات کی نشاندہی کرتا ہے کہ فون نمبر درست نہیں ہے۔

اس کے ساتھ، ہم جانے کے لئے اچھے ہیں. اب، آپ اپنے فون نمبروں کی جانچ کر سکتے ہیں کہ آیا وہ درست ہیں۔

خلاصہ

اس مضمون کا مقصد ریگولر ایکسپریشنز، ان کے استعمال، اور فون نمبرز کی توثیق کے لیے ان کا اطلاق کیسے کیا جا سکتا ہے، کا ایک مختصر جائزہ فراہم کرنا ہے۔ ہم نے فون نمبر کے مختلف اجزاء پر بھی تبادلہ خیال کیا اور ہر ایک جزو کی جانچ کیسے کی جا سکتی ہے۔

ریگولر ایکسپریشنز کی بنیادی تفہیم کے ساتھ، اب آپ اضافی پیٹرن کو تلاش کر سکتے ہیں۔ آپ جیسے ٹولز بھی استعمال کر سکتے ہیں۔ Regex101 آن لائن اپنے تاثرات کی توثیق کرنے کے لیے۔

ٹائم اسٹیمپ:

سے زیادہ Stackabuse