تحقق مما إذا كان Var لديه "الجبن" أو "كعكة" في ذلك؟

StackOverflow https://stackoverflow.com/questions/1657623

سؤال

كيف يمكنني التحقق مما إذا كان المتغير لديه شيء فيه؟ حاولت التحقق من ذلك .match() عاد null ولكن هذا لم يكن مفيدا للتحقق من أو؟

هل كانت مفيدة؟

المحلول

كما حصلت على إجابات فقط تنطوي على تعبيرات منتظمة، إليك حل عملية سلسلة عادي:

var hasMatch = input.indexOf('cheese') != -1 || input.indexOf('cake') != -1;

نصائح أخرى

/cheese|cake/.test(a)

يمكنك إضافة i في نهاية Regex إذا كنت ترغب في اختبار حالات بلا حساسة

جرب هذا:

var myString = 'I love cheese';
var isMatch = new RegExp(/(cheese|cake)/i).test(myString); //should return true

جميع التعبيرات المنشورة حتى الآن ستتطابق أيضا "Cheeseburger" و "Cakewalk". لا أعرف ما إذا كان هذا أمر مرغوب فيه أم لا، فقط في حالة وجود الإصدار التالي لا:

alert(/\b(cheese|cake)\b/i.test("cheese and cake")) // true
alert(/\b(cheese|cake)\b/i.test("cheeseburger and pancake")) // false

لا تريد فقط ما يلي؟

var result = input.match("cheese") || input.match("cake");
var matched = !!('cheese'.match(/(?:cheese|cake)/g));
alert(matched)

أو regexp.prototype.test:

var matched = /cheese|cake/i.test('cheese cake');
alert(matched)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top