Recherche dans un string

Résolu
mtlexodus Messages postés 4 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 8 février 2014 - 8 févr. 2014 à 14:13
mtlexodus Messages postés 4 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 8 février 2014 - 8 févr. 2014 à 14:41
Bonjour à tous,

Voici ma question, je désires un algorithme de recherche dans un string avec possibilité de substitution de caractère. je m'expliques dans une table de x éléments, je recherche avec le critère "T?ME" donc la fonction retournerait comme vrai les mots "TIME, TOME, TAME,..."

Si quelqu'un peut me donné un coup de main..
ce serait très apprécié .

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 127
Modifié par KX le 8/02/2014 à 14:41
Tu peux manipuler ta string comme un tableau de caractères avec la fonction charAt et ainsi comparer deux à deux les tableaux pour vérifier que les caractères sont identiques (sauf pour '?' bien sûr)

function compare(pattern, word)
{
    if (pattern==null)
        return word==null;
    else if (word==null)
        return false;

    var n = pattern.length;
    
    if (word.length != n)
        return false;
    
    for (var i=0; i<n; i++)
    {
        if (pattern.charAt(i) != '?' && word.charAt(i) != pattern.charAt(i))
            return false;
    }
    
    return true;
}
La confiance n'exclut pas le contrôle
1
mtlexodus Messages postés 4 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 8 février 2014
8 févr. 2014 à 14:41
Merci KX, grandement apprécié !!
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
8 févr. 2014 à 14:14
Bonjour,

Regarde les REGEXP. (expressions régulières).

0
mtlexodus Messages postés 4 Date d'inscription jeudi 10 septembre 2009 Statut Membre Dernière intervention 8 février 2014
8 févr. 2014 à 14:20
Petit ajout à ma demande, REGEXP ne doit pas être utilisé !!! Merci
0
Rejoignez-nous