নিয়মিত এক্সপ্রেশন সহ জাভাস্ক্রিপ্টে ফোন নম্বর যাচাই করুন

নিয়মিত এক্সপ্রেশন সহ জাভাস্ক্রিপ্টে ফোন নম্বর যাচাই করুন

ভূমিকা

আপনি এটি উপলব্ধি করুন বা না করুন, ডেটা আমাদের দৈনন্দিন জীবনের একটি গুরুত্বপূর্ণ অংশ হয়ে উঠেছে। অনলাইনে খাবার অর্ডার করা থেকে শুরু করে বিড়ালের খাবার খোঁজা পর্যন্ত, আমরা ক্রমাগত ডেটা পাঠাচ্ছি এবং গ্রহণ করছি। ওয়েব অ্যাপ্লিকেশনগুলির বিকাশকারী হিসাবে, ব্যবহারকারীর ইনপুটগুলি নির্দিষ্ট বিন্যাসে রয়েছে তা নিশ্চিত করা আমাদের দায়িত্ব যাতে ডাটাবেস সঠিকভাবে ডেটা বুঝতে পারে এবং অ্যাপ্লিকেশনটি শক্তিশালী থাকে।

ফোন নম্বর যাচাইকরণ গুরুত্বপূর্ণ কারণ এটি নিশ্চিত করে যে ডেটাবেস জুড়ে একটি সামঞ্জস্যপূর্ণ বিন্যাসে ডেটা সংরক্ষণ করা হয়েছে। উদাহরণস্বরূপ, ব্যবহারকারীদের তাদের ফোন নম্বরের আগে দেশের কোড ইনপুট করা উচিত কিনা সে বিষয়ে স্পষ্টীকরণের প্রয়োজন হতে পারে। সঠিক বৈধতার সাথে, ব্যবহারকারীরা সহজেই নির্ধারণ করতে পারে যে এটি প্রয়োজন কিনা। একইভাবে, ব্যবহারকারীর অভিজ্ঞতা একটি সামঞ্জস্যপূর্ণ বিন্যাসের সাথে উন্নত হয়, কারণ আপনি জানেন ব্যবহারকারীদের কাছ থেকে কী আশা করা যায় এবং সেই অনুযায়ী যুক্তি প্রয়োগ করতে পারেন। অসামঞ্জস্যপূর্ণ ডেটার কারণে পরবর্তী পর্যায়ে কোডটি ভেঙে গেলে ব্যবহারকারীদের জন্য এটি একটি খারাপ অভিজ্ঞতা হবে।

নিয়মিত এক্সপ্রেশন প্যাটার্ন ম্যাচিং জন্য শক্তিশালী হাতিয়ার. তারা আপনার ব্যবহারের ক্ষেত্রে নির্ভর করে বিভিন্ন ধরণের নিদর্শনগুলিকে মেলানোর নমনীয়তা প্রদান করে। অতিরিক্তভাবে, রেগুলার এক্সপ্রেশনগুলি ভাষা-অজ্ঞেয়বাদী, আপনার বৈধতা যুক্তিকে আরও বহনযোগ্য করে তোলে, কারণ আপনি সহজেই মূল বৈধতাকে একীভূত করতে পারেন। জাভাস্ক্রিপ্টে রেজেক্সের সাথে কাজ করা একটি সহজ কাজ।

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

একটি নিয়মিত অভিব্যক্তি কি?

সহজ ভাষায়, একটি রেগুলার এক্সপ্রেশন একটি প্রদত্ত স্ট্রিং-এ একটি পূর্বনির্ধারিত প্যাটার্নের সাথে মেলে। এটি ব্যাপকভাবে প্রোগ্রামিং ভাষায় ব্যবহৃত হয় এবং প্রাথমিকভাবে একটি নির্দিষ্ট বিন্যাসের ইনপুট যাচাই করার জন্য নিযুক্ত করা হয়। তদ্ব্যতীত, রেগুলার এক্সপ্রেশন সাধারণত নির্দিষ্ট প্যাটার্ন অনুসন্ধান, বিভাজন এবং প্রতিস্থাপনের জন্য ব্যবহৃত হয়।

ধরা যাক আপনি একটি নথিতে একটি ইমেল ঠিকানা খুঁজে পেতে চান৷ ইমেল ঠিকানা যে কোনো ঠিকানা হতে পারে, একটি নির্দিষ্ট নয়। একটি সাধারণ অভিব্যক্তি লেখা আপনাকে প্যাটার্নটি দ্রুত খুঁজে পেতে সাহায্য করবে যেহেতু আপনি ইতিমধ্যেই একটি ইমেল ঠিকানার গঠন জানেন৷

একটি নিয়মিত অভিব্যক্তি বিভিন্ন ধরনের নিদর্শন বোঝাতে বিশেষ অক্ষর ব্যবহার করে। উদাহরণ স্বরূপ:

  • . (ডট) একটি বিশেষ অক্ষর যা যেকোনো অক্ষরের সাথে মিলে যেতে পারে।
  • * (তারকা) পূর্ববর্তী অক্ষর 0 বা তার বেশি বার মেলে।
  • + (plus) পূর্ববর্তী অক্ষরের সাথে এক বা একাধিকবার মেলে।
  • ? (প্রশ্ন চিহ্ন) পূর্ববর্তী অক্ষরটিকে ঐচ্ছিক করে তোলে।
  • [abc] যে কোনো অক্ষরের সাথে মিলে যায় a, b, বা c.
  • (abc) অক্ষরগুলিকে একত্রিত করে।
  • ^ (ক্যারেট) লাইনের শুরুর সাথে মেলে।
  • $ (ডলার) লাইনের শেষের সাথে মেলে।

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

আসুন একটি রেগুলার এক্সপ্রেশন তৈরি করি যা পরীক্ষা করে যে সংখ্যার একটি সেট একটি পাঁচ-সংখ্যার জিপ কোড কিনা। অভিব্যক্তি লেখা শুরু করতে, আমরা ব্যবহার করব ^ (ক্যারেট) চিহ্ন, কারণ এটি লাইনের শুরুর সাথে মেলে। নিয়মিত অভিব্যক্তিতে, d যেকোনো অঙ্কের সাথে মেলে এবং কোঁকড়া ধনুর্বন্ধনীর ভিতরে একটি সংখ্যা ({}) ধনুর্বন্ধনীর ভিতরে যতবার দেওয়া হয়েছে ঠিক ততবার পূর্বের উপাদানের সাথে মেলে। উপরের তালিকা থেকে, আমরা তা জানি $ লাইনের শেষ মেলানোর জন্য ব্যবহৃত হয়।

এই তথ্য একত্রিত করে, আমরা এই মত একটি নিয়মিত অভিব্যক্তি পেতে:

/^d{5}$/

এখন, অভিব্যক্তিটি আরও ভালভাবে বোঝার জন্য নীচের গ্রাফিকটি পরীক্ষা করা যাক।

পাঁচ-সংখ্যার জিপ কোডের সাথে মেলে রেগুলার এক্সপ্রেশন

পাঁচ-অঙ্কের জিপ কোডের সাথে মিলে যাওয়ার জন্য নিয়মিত অভিব্যক্তি

এখন যেহেতু আমরা রেগুলার এক্সপ্রেশন এবং তাদের সাধারণ গঠন সম্পর্কে প্রাথমিক ধারণা পেয়েছি, এই এক্সপ্রেশনগুলি কীভাবে একটি জাভাস্ক্রিপ্ট ফাংশনে প্রয়োগ করা যেতে পারে তা অন্বেষণ করার জন্য এটি একটি ভাল সময়।

জাভাস্ক্রিপ্ট রেগুলার এক্সপ্রেশন

জাভাস্ক্রিপ্ট হল সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষা বিকাশকারীদের মধ্যে। যেহেতু প্রায় সব ওয়েব অ্যাপ্লিকেশনের জন্য জাভাস্ক্রিপ্টের প্রয়োজন হয়, তাই এই ভাষায় কীভাবে রেগুলার এক্সপ্রেশন ব্যবহার করা যায় তা বোঝা অত্যন্ত গুরুত্বপূর্ণ।

জাভাস্ক্রিপ্টে, RegExp বস্তু প্যাটার্ন ম্যাচিং জন্য ব্যবহার করা হয়. এই বস্তুটি দুটি উপায়ে ব্যবহার করা যেতে পারে:

  • আক্ষরিক স্বরলিপি ব্যবহার করে, যেখানে দুটি ফরোয়ার্ড স্ল্যাশের মধ্যে একটি প্যাটার্ন ফর্ম্যাট করা হয়
  • কনস্ট্রাক্টর নোটেশন ব্যবহার করে, যেখানে হয় একটি স্ট্রিং বা একটি RegExp বস্তু পাস হয়

আক্ষরিক স্বরলিপি এই হিসাবে সহজভাবে ব্যবহার করা যেতে পারে:

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

অন্যদিকে, কনস্ট্রাক্টর স্বরলিপি সহ, আপনাকে ব্যবহার করতে হবে RegExp কনস্ট্রাক্টর এটির একটি উদাহরণ তৈরি করতে। এটি দেখতে কেমন তা এখানে:

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

আপনি থেকে RegExp অবজেক্ট সম্পর্কে আরও পড়তে পারেন অফিসিয়াল MDN ডক্স. এখন, ফোন নম্বর যাচাইকরণের গুরুত্ব এবং একটি ফোন নম্বরের বিভিন্ন উপাদান অন্বেষণ করা যাক।

ফোন নম্বর বৈধতা এবং উপাদান

আপনার ডাটাবেসে ফোন নম্বর সংরক্ষণ করার সময় ক্লায়েন্ট সাইডে ফোন নম্বর যাচাই করা অত্যন্ত গুরুত্বপূর্ণ। যথাযথ বৈধতা ছাড়া, আপনার কোড অপ্রত্যাশিত আচরণ প্রদর্শন করতে পারে।

সেরা-অভ্যাস, শিল্প-স্বীকৃত মান এবং অন্তর্ভুক্ত চিট শীট সহ গিট শেখার জন্য আমাদের হ্যান্ডস-অন, ব্যবহারিক গাইড দেখুন। গুগলিং গিট কমান্ড এবং আসলে বন্ধ করুন শেখা এটা!

উদাহরণস্বরূপ, ধরুন আপনি এমন একটি পরিষেবা ব্যবহার করছেন যার জন্য ফোন নম্বর সহ দেশের কোড প্রয়োজন, কিন্তু আপনার ব্যবহারকারীরা বৈধতার অভাবের কারণে সেগুলি অন্তর্ভুক্ত করছেন না৷ এখন, আপনার কাছে শুধুমাত্র নম্বর আছে ছাড়া দেশের কোড, এবং একটি পরিষেবা যা এসএমএস পাঠ্য বার্তা পাঠায় এই কারণে ব্যর্থ হতে পারে। এটি শুধুমাত্র একটি অনুমানমূলক দৃশ্যকল্প। অন্যান্য সমস্যা এমনকি আপনার অ্যাপ্লিকেশন ক্র্যাশ করতে পারে। ফ্রন্টএন্ডে আপনার ডেটা সঠিকভাবে পরিচালনা করা অত্যন্ত গুরুত্বপূর্ণ, যাতে আপনি আপনার ডাটাবেস জুড়ে পরিষ্কার এবং সামঞ্জস্যপূর্ণ ডেটা সংরক্ষণ করেন।

সাধারণত, একটি ফোন নম্বর চারটি অংশ নিয়ে গঠিত:

  • দেশের কোড: প্রথম 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 পর্যন্ত যেকোনো সংখ্যা শূন্য থেকে দুই বার থাকতে পারে।

বিভাজকের জন্য, আমরা একটি যোগ করতে পারি - (হাইফেন) সংখ্যার বিভাগগুলির মধ্যে। এক - দেশের কোড যাচাইকরণের পরে যোগ করা যেতে পারে। সুতরাং, এই মুহুর্তে, রেজেক্সটি এইরকম দেখাচ্ছে:

^+[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}, এটি ন্যূনতম শূন্য বার এবং সর্বাধিক দুই বার প্যাটার্নের সাথে মিলবে৷

প্যাটার্ন প্রস্তুত। রেগুলার এক্সপ্রেশন ব্যবহার করে ফোন নম্বর বৈধ কিনা তা পরীক্ষা করতে আমরা এখন একটি সাধারণ জাভাস্ক্রিপ্ট ফাংশন লিখতে পারি। এখানে ফাংশন:

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