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


14 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; }; }
Question

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

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




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

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

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




আপনি কুৎসিত -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
}

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




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

var test = elm.getAttribute("className");
//or
var test = elm.className



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

 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



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

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

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

require('es6-shim')



উদাহরণ

if (!String.prototype.contains) {
  String.prototype.contains= function() {
    return String.prototype.indexOf.apply(this, arguments) !== -1;
  };
}



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

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

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

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




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

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

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

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

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




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

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+'');




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

String.prototype.contains = function(test) {
    return this.indexOf(test) == -1 ? false : true;
};



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

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

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







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

RegExp.test(string)




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

প্রথম বিকল্প: 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 সামঞ্জস্যপূর্ণ টেবিলে নজর রাখুন।




Related