javascript কিভাবে একটি স্ট্রিং জাভাস্ক্রিপ্ট একটি পদার্থবিশেষ রয়েছে কিনা তা পরীক্ষা করবেন?





15 Answers

আপনি সহজেই এই বিবৃতি সহ স্ট্রিংয়ের জন্য একটি contains পদ্ধতি যুক্ত করতে পারেন:

String.prototype.contains = function(it) { return this.indexOf(it) != -1; };

দ্রষ্টব্য: এই ব্যবহার না করার জন্য একটি বৈধ যুক্তি জন্য নীচের মন্তব্য দেখুন। আমার পরামর্শ: আপনার নিজের রায় ব্যবহার করুন।

বিকল্পভাবে:

if (typeof String.prototype.contains === 'undefined') { String.prototype.contains = function(it) { return this.indexOf(it) != -1; }; }
javascript string substring contains string-matching

সাধারণত আমি একটি String.contains() পদ্ধতি আশা করি, কিন্তু এক হতে বলে মনে হচ্ছে না।

এই জন্য চেক করার একটি যুক্তিসঙ্গত উপায় কি?




ES6 এ একটি string.includes আছে।

"potato".includes("to");
> true

মনে রাখবেন আপনাকে es6-shim বা পুরোনো ব্রাউজারগুলিতে কাজ করার জন্য es6-shim মতো লোড করতে হবে।

require('es6-shim')



আপনি জাভাস্ক্রিপ্ট search() পদ্ধতি ব্যবহার করতে পারেন।

সিনট্যাক্স হল: string.search(regexp)

এটি কোনও মিল পাওয়া গেলে ম্যাচটির অবস্থান, বা -1।

এখানে উদাহরণ দেখুন: jsref_search

আপনি একটি জটিল নিয়মিত অভিব্যক্তি সিনট্যাক্স প্রয়োজন হয় না। আপনি তাদের সাথে পরিচিত না হলে একটি সহজ st.search("title") করতে হবে। আপনি যদি আপনার পরীক্ষার ক্ষেত্রে st.search(/title/i) হতে চান তবে আপনাকে st.search(/title/i)




আপনি কুৎসিত -1 চেক লিখতে একটি বিকল্প খুঁজছেন ছিল, আপনি পরিবর্তে একটি ~ tilde প্রি।

if (~haystack.indexOf('needle')) alert('found');

জো জিমম্যানন - আপনি দেখতে পাবেন যে ~ অন -1 ব্যবহার করে এটি 0 রূপান্তর করে। সংখ্যা 0 একটি মিথ্যা মান, অর্থাত এটি একটি বুলিয়ান রূপান্তরিত হলে মিথ্যাটির মূল্যায়ন করবে। এটি প্রথমে একটি বড় অন্তর্দৃষ্টি বলে মনে হচ্ছে না, তবে সূচী-এর মত ফাংশন মনে রাখবেন -1 যখন ক্যোয়ারী পাওয়া যাবে না। এর মানে এইরকম কিছু লেখার পরিবর্তে:

if (someStr.indexOf("a") >= 0) {
  // Found it
} else  {
  // Not Found
}

আপনার কোডটিতে এখন আপনার কম সংখ্যক অক্ষর থাকতে পারে তাই আপনি এটির মতো লিখতে পারেন:

if (~someStr.indexOf("a")) {
  // Found it
} else  {
  // Not Found
}

আরো বিস্তারিত এখানে




জাভাস্ক্রিপ্টে একটি contains পদ্ধতি লিখার একটি সাধারণ উপায় হল:

if (!String.prototype.contains) {
    String.prototype.contains = function (arg) {
        return !!~this.indexOf(arg);
    };
}

Bitwise নেগ্রেশন অপারেটর ( ~ ) -1-0 (মিথ্যা) চালু করতে ব্যবহৃত হয় এবং অন্যান্য সমস্ত মান অ-শূন্য (সত্য) হবে।

ডাবল বুলিয়ান নেগশন অপারেটরগুলি বুলিয়ানের সংখ্যাটি নিক্ষেপ করতে ব্যবহার করা হয়।




ওয়েবে এবং এখানে পাওয়া কোড স্নিপেট ব্যবহার করার পরিবর্তে, আপনি একটি ভাল-পরীক্ষিত এবং নথিভুক্ত লাইব্রেরি ব্যবহার করতে পারেন। দুটি বিকল্প আমি সুপারিশ করবে:

প্রথম বিকল্প: Lodash ব্যবহার করুন: এতে একটি পদ্ধতি includes :

_.includes('foobar', 'ob');
// → true

লোড্যাশ এনপিএম এর জন্য সবচেয়ে জনপ্রিয় জাভাস্ক্রিপ্ট লাইব্রেরি নির্ভরতা এবং সহজে জাভাস্ক্রিপ্ট ইউটিলিটি পদ্ধতির লোড রয়েছে। তাই অনেক প্রকল্পের জন্য আপনি এই যাই হোক না কেন চাই ;-)

দ্বিতীয় বিকল্প: অথবা Underscore.string ব্যবহার করুন: এটি একটি include পদ্ধতি আছে:

_.str.include('foobar', 'ob');
// → true

এখানে আন্ডারস্কোর.স্ট্রিংয়ের বিবরণ রয়েছে, এটি কেবল 9 কেবি যোগ করে তবে এটি আপনাকে সমস্ত সুবিধাদি দেয় যা একটি ভাল-পরীক্ষিত এবং নথিবদ্ধ লাইব্রেরি অনুলিপি কোড স্ন্যিপেটগুলিতে আছে:

Underscore.string স্ট্রিং সহ আরামদায়ক ম্যানিপুলেশনের জন্য জাভাস্ক্রিপ্ট লাইব্রেরি, প্রোটোটাইপ.জেএস, রাইট.জেএস, আন্ডারস্কোর এবং সুন্দর রুবি ভাষা দ্বারা অনুপ্রাণিত Underscore.js এর জন্য এক্সটেনশান।

Underscore.string আপনাকে অনেকগুলি কার্যকর ফাংশন সরবরাহ করে: মূলধন, পরিষ্কার, অন্তর্ভুক্ত, গণনা, পাল্টা HTML, unescapeHTML, সন্নিবেশ, splice, শুরু, সহ, শেষ, শিরোনাম, শিরোনাম, ছিনতাই এবং ইত্যাদি।

ভাল মনে রাখবেন, Underscore.string আন্ডারস্কোর.জেএস দ্বারা প্রভাবিত কিন্তু এটি ছাড়া ব্যবহার করা যেতে পারে।

শেষ না অন্তত: জাভাস্ক্রিপ্ট সংস্করণ ES6 আসে একটি অন্তর্নির্মিত পদ্ধতি includes :

'foobar'.includes('ob');
// → true

বেশিরভাগ আধুনিক ব্রাউজার ইতিমধ্যে এটি সমর্থন করে, ES6 সামঞ্জস্যপূর্ণ টেবিলে নজর রাখুন।




একটি নিয়মিত অভিব্যক্তি ব্যবহার করুন:

RegExp.test(string)




আপনি .indexOf String.prototype.indexOf খুঁজছেন।

indexOf substring একটি সূচক ফিরে যাচ্ছে। পদার্থ সূত্রপাত শুরু হবে যেখানে সূচক। কোন মিল নেই, একটি -1 ফিরে। এখানে সেই ধারণার একটি সহজ ডেমো রয়েছে:

var str = "Hello World"; // For example, lets search this string,
var term = "World"; // for the term "World",
var index = str.indexOf(term); // and get its index.
if (index != -1) { // If the index is not -1 then the term was matched in the string,
  alert(index); // and we can do some work based on that logic. (6 is alerted)
}




এই শুধু আমার জন্য কাজ। এটি এমন স্ট্রিংগুলির জন্য নির্বাচন করে যা "মুছে ফেলা হয়েছে" শব্দটি ধারণ করে না।

if (eventString.indexOf("Deleted:") == -1)



এটি করার জন্য একটি মসৃণ এবং আরও ভাল উপায় রয়েছে এবং এটি (বিটওয়াইজ নয়) অপারেটর ব্যবহার করছে।

if(~"John".indexOf("J")) {
  alert("Found")
}
else {
  alert("Not Found");
}

বিটওয়াইটি "x" কে রূপান্তর করে না - (x + 1) তাই, x যদি indexOf method থেকে 1-আউট হয়ে যায়। তাহলে এটি - (-1 + 1) = -0 রূপান্তরিত হবে যা একটি মিথ্যা মূল্য।




উদাহরণ

var a  = "Test String";

if(a.search("ring")!=-1){
     //exist 
} else {
     //not found 
}






কিছু বৈধ সমাধান সংগ্রহ করার জন্য:

var stringVariable = "some text";
var findString = "text";

//using `indexOf()`
var containResult1 = stringVariable.indexOf(findString) != -1;
document.write(containResult1+', ');

//using `lastIndexOf()`
var containResult2 = stringVariable.lastIndexOf(findString) != -1;
document.write(containResult2+', ');

//using `search()`
var containResult3 = stringVariable.search(findString) != -1;
document.write(containResult3+', ');
     
//using `split()`
var containResult4 = stringVariable.split(findString)[0] != stringVariable;
document.write(containResult4+'');




জাভাস্ক্রিপ্ট

 var str = "My big string contain apples and oranges";
 var n = str.indexOf("apples"); 
 alert(n); //will alert 22, -1 if not found

jQuery এর

  <p>My big string contain apples and oranges</p>
  alert($("p:contains(apples)")[0] != undefined); //will alert true if found



স্ট্রিংয়ে অন্তর্মুখী এবং সর্বাধিক একটি match() করুন। আপনি যা খুঁজছেন তা অর্জন করতে এই কাজ করুন:

var stringData ="anyString Data";

var subStringToSearch = "any";

// This will give back the substring if matches and if not returns null
var doesContains = stringData.match(subStringToSearch);

if(doesContains !=null) {
    alert("Contains Substring");
}



Related