Vérifiez si var a « fromage » OU « gâteau » en elle?
-
11-09-2019 - |
Question
Comment puis-je vérifier si une variable a quelque chose? J'ai essayé de vérifier si un .match()
retourné null
mais qui n'a pas été utile pour vérifier avec un OR?
La solution
Comme vous n'avez des réponses concernant les expressions rationnelles, voici la solution de fonctionnement de chaîne simple:
var hasMatch = input.indexOf('cheese') != -1 || input.indexOf('cake') != -1;
Autres conseils
/cheese|cake/.test(a)
vous pouvez ajouter un i
à la fin de la regex si vous voulez tester indépendamment de la casse
Essayez ceci:
var myString = 'I love cheese';
var isMatch = new RegExp(/(cheese|cake)/i).test(myString); //should return true
toutes les expressions affichées jusqu'à présent seraient également correspondre « cheeseburger » et « partie de plaisir ». Je ne sais pas si cela est souhaitable ou non, juste au cas où est ici la version qui ne fonctionne pas:
alert(/\b(cheese|cake)\b/i.test("cheese and cake")) // true
alert(/\b(cheese|cake)\b/i.test("cheeseburger and pancake")) // false
Vous ne voulez pas que ce qui suit?
var result = input.match("cheese") || input.match("cake");
var matched = !!('cheese'.match(/(?:cheese|cake)/g));
alert(matched)
Ou RegExp.prototype.test:
var matched = /cheese|cake/i.test('cheese cake');
alert(matched)