জিপ-কোডের জন্য রেজেক্স


118

সম্ভাব্য সদৃশ:
চূড়ান্ত পোস্টাল কোড এবং জিপ রেজেক্স কী?

আমার রেইগেক্স দরকার যা জিপ কোডের জন্য আমার তিনটি কনডিশনকে সন্তুষ্ট করতে পারে। Eg-

  1. 12345
  2. 12345-6789
  3. 12345 1234

কোন পয়েন্টার এবং পরামর্শ অনেক প্রশংসা করা হবে। ধন্যবাদ!


4
সদৃশ বন্ধটি স্কেচী দেখায় - ডুপ একটি রেইজেক্সের জন্য জিজ্ঞাসা করছে যা কোনও জাতির কাছ থেকে যে কোনও ডাক কোডের সাথে মিলবে, অন্যদিকে এই প্রশ্নটি কেবলমাত্র মার্কিন যুক্তরাষ্ট্রে জিপ কোডগুলি মেলানোর জন্য একটি রেজেক্সের জন্য জিজ্ঞাসা করছে, যা এই প্রশ্নটিকে অনেক বেশি করে তোলে প্রতারিত চেয়ে সুযোগ সংকীর্ণ - কিন্তু সেখানে নেই কোন উত্তর প্রতারিত এ পাওয়া যাবে আসলে। দেখুন stackoverflow.com/a/7185241/1709587 যার জন্য মার্কিন সহ 100 টি দেশে,> ইউনিকোড CLDR এর (, পুরাতন বর্তমানে অবচিত কিন্তু সম্ভবত এখনও অনেক ক্ষেত্রে পর্যাপ্ত) ডাক regexes তালিকাবদ্ধ করে। মার্কিন রেজেক্স হয় \d{5}([ \-]\d{4})?
মার্ক আমেরিকা

উত্তর:


310
^\d{5}(?:[-\s]\d{4})?$
  • ^ = স্ট্রিংয়ের শুরু।
  • \d{5} = 5 টি সংখ্যা মেলে (1, 2, 3 শর্তের জন্য)
  • (?:…) = দলবদ্ধকরণ
  • [-\s] = একটি স্পেস (শর্ত 3 জন্য) বা একটি হাইফেন (শর্ত 2 জন্য) সাথে মেলে
  • \d{4} = 4 অঙ্কের সাথে ম্যাচ করুন (শর্ত 2, 3 এর জন্য)
  • …? এটির আগে প্যাটার্নটি alচ্ছিক (শর্তাবলীতে 1)
  • $ = স্ট্রিংয়ের সমাপ্তি।

7
\sট্যাব এবং নতুন লাইন সহ যে কোনও শ্বেতস্পেসের সাথে মিলবে।
চোখের পলকহীনতা

1
হাই, 123451234 জায়গা ব্যতীত স্থানটি কী
অজয় সুওয়ালকা

4
@ প্রেভিগা: আপনার লিঙ্ক করা (এখন মুছে ফেলা) উত্তর সম্পর্কে মন্তব্যগুলি পড়া, এটি ভুল বলে মনে হচ্ছে। উদাহরণস্বরূপ, 00544একটি বৈধ পিন কোড; 544এটি না.
কিথ থমসন

2
@ অজয়সুওয়ালকা: 123451234 স্থান না থাকায় আপনার থাকার জন্য আপনাকে যা করতে হবে? [- \ s] এর পরে, তাই এটি হয়ে উঠবে: ^ \ d {5} (?: [[\ s]? \ d {4})? $
গ্রুনংডোলা

6
পার্টিতে কিছুটা দেরি, এবং সম্ভবত বলের সবচেয়ে সুন্দর ঘণ্টা নয়, তবে হাইফেনের দু'পাশে অতিরিক্ত alচ্ছিক স্পেস যুক্ত করেছি - বেশিরভাগ নান্দনিকতার জন্য। /(^\d{5}(?:[\s]?[-\s][\s]?\d{4})?$)/
বার্লেল

4

শুধুমাত্র তালিকাভুক্ত তিনটি শর্তের জন্য, এই অভিব্যক্তিগুলিও কাজ করতে পারে:

^\d{5}[-\s]?(?:\d{4})?$
^\[0-9]{5}[-\s]?(?:[0-9]{4})?$
^\[0-9]{5}[-\s]?(?:\d{4})?$
^\d{5}[-\s]?(?:[0-9]{4})?$

অতিরিক্ত ব্যাখ্যা জন্য দয়া করে এই ডেমো দেখুন।

যদি আমাদের 5 থেকে 4 ডিজিটের মধ্যে বা অবিচ্ছিন্ন 9 ডিজিটের জিপ কোডের মধ্যে অপ্রত্যাশিত অতিরিক্ত স্পেস থাকে তবে:

123451234
12345 1234
12345  1234

এই অভিব্যক্তি উদাহরণস্বরূপ কম বাধা সঙ্গে একটি গৌণ বিকল্প হবে:

^\d{5}([-]|\s*)?(\d{4})?$

অতিরিক্ত ব্যাখ্যা জন্য দয়া করে এই ডেমো দেখুন।

রেজেক্স সার্কিট

jex.im নিয়মিত এক্সপ্রেশন ভিজ্যুয়ালাইজ করে:

এখানে চিত্র বর্ণনা লিখুন

পরীক্ষা

const regex = /^\d{5}[-\s]?(?:\d{4})?$/gm;
const str = `12345
12345-6789
12345 1234
123451234
12345 1234
12345  1234
1234512341
123451`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}


0

আমি জানি যে বেশিরভাগ লোকেরা RegEx ঘন ঘন ব্যবহার করেন তাদের পক্ষে এটি সুস্পষ্ট হতে পারে তবে কোনও পাঠক যদি RegEx এ নতুন হয় তবে আমি ভেবেছিলাম যে আমার যে পর্যবেক্ষণটি আমার প্রকল্পগুলির জন্য সহায়ক ছিল তা আমি প্রকাশ করব।

@ টেনিটেমের পূর্ববর্তী উত্তরে:

^\d{5}(?:[-\s]\d{4})?$

...? এটির আগে প্যাটার্নটি alচ্ছিক (শর্তাবলীতে 1)

যদি আপনি স্ট্যান্ডার্ড 5 ডিজিট এবং +4 জিপ কোড উভয়কেই অনুমতি দিতে চান তবে এটি একটি দুর্দান্ত উদাহরণ।

আমাকে যেমন করতে হবে কেবল মার্কিন যুক্তরাষ্ট্রে 'জিপ + 4' ফর্ম্যাটে পিন কোডগুলি মেলানোর জন্য (কেবল শর্ত 2 এবং 3) কেবল শেষটি সরিয়ে ফেলুন ? যাতে এটি সর্বদা শেষ 5 টি অক্ষরের গোষ্ঠীর সাথে মেলে।

রেজিএক্সের সাথে টিঙ্কার করার জন্য আমি প্রস্তাবিত একটি দরকারী সরঞ্জাম নীচে লিঙ্কযুক্ত:

https://regexr.com/

আমি যখন রেজিএক্স পাই যা আমার প্রয়োজন মতো কিছু করে তবে আমি এই সরঞ্জামটি ঘন ঘন ব্যবহার করি তবে কিছুটা আরও ভাল তৈরি করা যায়। এটিতে একটি নিফটি রেজিএক্স রেফারেন্স মেনু এবং তথ্যবহুল ইন্টারফেসও রয়েছে যা আপনাকে যে পরিবর্তনগুলি আপনি প্রবেশ করানো নমুনা পাঠ্যের সাথে ম্যাচগুলিতে কীভাবে প্রভাব ফেলবে তা সম্পর্কে সচেতন রাখে।

যদি আমি কিছু ভুল হয়ে থাকে বা কোনও গুরুত্বপূর্ণ টুকরো তথ্য মিস করি তবে দয়া করে আমাকে সংশোধন করুন।


বা আপনি এই রেজেক্স টিউটোরিয়ালটি উল্লেখ করতে পারেন - youtube.com/watch?v=8uCHRyK_VMo
কৃষ্ণরাজ রানা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.