পুরো স্ট্রিং ম্যাচ


165

টেক্সটটি হুবহু মিল থাকলে কেবল নিয়মিত ভাবটি (জাভাস্ক্রিপ্টে এটি গুরুত্বপূর্ণ হলে) কী মিলবে? অর্থাৎ স্ট্রিংয়ের অন্য প্রান্তে অতিরিক্ত অক্ষর থাকা উচিত নয়।

উদাহরণস্বরূপ, যদি আমি মেলে চেষ্টা করছি abc, তারপর 1abc1, 1abcআর abc1মেলে না।


5
নতুন যাঁরা রেগেছেন তাদের জন্য, আপনি যা খুঁজছেন তার উপর নির্ভর করে এটির দুটি ভাল উত্তর রয়েছে। প্রশ্নকর্তা সত্যই চান \babc\b, যা উদাহরণস্বরূপ 123 abc 123মিলবে abc(তবে প্রশ্নের মতো নেতিবাচক উদাহরণ নয়); তবে, ^abc$এটি নিশ্চিত করবে যে aস্ট্রিংয়ের শুরুতে এবং cশেষের দিকে - অন্যথায় এটি মেলে না।
অ্যান্ড্রু

উত্তর:


305

শুরু এবং শেষের ডিলিমিটারগুলি ব্যবহার করুন: ^abc$


3
@ জ্যাক, আমি খুশী হাওয়ার্ডস উত্তরটি কাজ করেছে, তবে আমার মনে হয় আপনার যদি মনে করা উচিত তবে এটি কেবল তখনই কাজ করবে যখন কেবল মাত্র স্ট্যান্ডের একমাত্র আইটিসি থাকে is উদাহরণস্বরূপ, এটি 'বর্ণমালায় প্রথম 3 টি অক্ষরের সাথে মিল থাকবে না'
ম্যাচিউ

এটি আমার পক্ষে কাজ করেছিল, সম্ভবত আমার উদাহরণটি ম্যাচের লক্ষ্য হিসাবে "abc def ghi" হওয়া উচিত ছিল।
জ্যাক পিয়ারসন

@ জেক যদি আপনার স্ট্রিং "abc def ghi" হয় তবে / ^ abc $ / কাজ করবে না। উদাঃ jsfiddle.net/XUyAc
ম্যাচিউ

2
আমি পেয়েছি, যদি আমি "abc def ghi" এর সাথে মিল রাখতে চাই তবে আমার রেগেেক্সটি হবে^abc def ghi$
জ্যাক পিয়ারসন

2
দ্রষ্টব্য: বিকল্পগুলির সাথে একটি প্যাটার্নটি পুরো স্ট্রিংয়ের সাথে মেলে, এটি কোনও (অ) ক্যাপচারিং গ্রুপের সাথে আবৃত করা প্রয়োজন হতে পারে: /^(?:abc|def)$/বা /^(abc|def)$/। অন্যথায়, গ্রুপটি ব্যবহার না করা থাকলে, স্ট্রিংয়ের শুরুতে বা স্ট্রিংয়ের শেষে /^abc|def$/মিলবে । abcdef
উইক্টর স্ট্রিবিউউ

40

এটা নির্ভর করে. আপনি পারে

string.match(/^abc$/)

তবে এটি নিম্নলিখিত স্ট্রিংয়ের সাথে মেলে না: 'বর্ণমালার প্রথম 3 টি অক্ষর abc। abc123 'না

আমি মনে করি আপনি \b(শব্দ সীমানা) ব্যবহার করতে চান :

var str = 'the first 3 letters of the alphabet are abc. not abc123';
var pat = /\b(abc)\b/g;
console.log(str.match(pat));

সরাসরি উদাহরণ: http://jsfiddle.net/uu5VJ/

যদি পূর্বের সমাধানটি আপনার পক্ষে কাজ করে তবে আমি এটি ব্যবহার করার বিরুদ্ধে পরামর্শ দেব।

তার মানে আপনার নীচের মতো কিছু থাকতে পারে:

var strs = ['abc', 'abc1', 'abc2']
for (var i = 0; i < strs.length; i++) {
    if (strs[i] == 'abc') {
        //do something 
    }
    else {
        //do something else
    }
}

আপনি ব্যবহার করতে পারে যখন

if (str[i].match(/^abc$/g)) {
    //do something 
}

এটি যথেষ্ট আরও সংস্থান-নিবিড় হবে। আমার জন্য, একটি সাধারণ স্ট্রিং তুলনা একটি সাধারণ স্ট্রিং তুলনা শর্তসাপেক্ষ এক্সপ্রেশন ব্যবহার করুন, আরও গতিশীল প্যাটার্নের জন্য নিয়মিত এক্সপ্রেশন ব্যবহার করুন।

জাভাস্ক্রিপ্ট পুনর্নির্মাণগুলি সম্পর্কে আরও: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions


12
@ নীহারসওয়ান্ট কারণ এটি ওপি জিজ্ঞাসা করা প্রশ্নের উত্তর নয়। ওপি স্পষ্টতই "'বর্ণমালার প্রথম তিনটি বর্ণকেই এবিসি" মেলাতে চায় না এবং এখানে দ্বিতীয় সমাধানটি সাধারণ রেজেখাগুলির সাথে মিলে যায় না, যেমন / / ab [এবিসি] + $ /
ডিজেক্লেওয়ার্থ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.