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
16566
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
3 juillet 2022
124
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
35777
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
3 juillet 2022
358
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