Qu'est-ce que le JavaScript équivalent de MySQL %% clause?
Dans MySQL j'utilise la clause like:
LIKE %some keyword%
effectuer des recherches sur les enregistrements de base de données. Que puis-je utiliser de la même façon de faire une recherche dans un JavaScript? Donc, si un utilisateur entre quelque chose comme
ger
il va montrer
german shepard
Ne pouvez pas utiliser:
str.search('ger');
car elle semble être la seule à correspondre à des mots entiers
OriginalL'auteur TK123 | 2011-09-30
Vous devez vous connecter pour publier un commentaire.
ce n'est pas exactement la même que
%LIKE%
mais vous pouvez utiliserindexOf()
.>
pas<
génie :D...pouah je déteste min longueur des commentaires
Vous m'attraper! pouah je déteste min longueur des commentaires
Non, il est sensible à la casse dev.mysql.com/doc/refman/5.0/en/...
Ce n'est Rien comparé à aimer, parce que vous n'avez pas de cas de sensibilité, et aussi, le caractère transpositions comme ç -> c ou à -> .. ne sont pas de travail.
OriginalL'auteur Mohsen
Je ne sais pas exactement dans quel contexte vous êtes à l'aide de l'opérateur like (par exemple, un champ de formulaire), mais vous voudrez probablement pour profiter de javascript objet d'expression régulière.
Un exemple simple (dans votre cas, pour un
LIKE
requête), pourrait ressembler à ceci:Alternativement, vous pouvez rechercher l'incidence de votre chaîne à l'aide de la
indexOf
opération:À l'aide de la regex n'est pas une bonne idée. C'est trop lent
Vous avez raison. Je ne sais pas pourquoi elle a été la première solution qui vient à l'esprit. Dans le même temps une expression régulière peut permettre à d'autres choses semblables à la syntaxe SQL que vous ne pouvez pas faire avec
indexOf
ou autres opérations de la chaîne.OriginalL'auteur NT3RP
search
fonction ne pas retourner uniquement les mots entiers. Peut-être que vous êtes confus par le fait qu'il renvoie d'index de base zéro, donc...De sorte que vous besoin de faire la comparaison du résultat de la recherche contre -1 pour voir si c'est un match ou pas - vous ne pouvez pas vérifier pour vrai/faux.
De sorte que vous pourriez faire...
OriginalL'auteur Billy Moon
Je ne sais pas si tous les navigateurs prennent en charge l'ensemble de ces méthodes: http://www.javascriptkit.com/jsref/string.shtml
Mais il semble qu'il y ait un
String.match()
méthode qui va faire ce que vous voulez.OriginalL'auteur Erik
En supposant que vous avez un tas d'enregistrements dans un tableau de chaînes, vous pouvez utiliser le JavaScript intégré dans
Array.filtre
méthode:Ou si votre cible JavaScript ne pas mettre en œuvre cette méthode (par exemple, il met en œuvre ECMAScript avant 5e édition), alors vous pouvez faire un simple tableau de la recherche, de l'e.g:
OriginalL'auteur maerics
Ici est un moyen facile de le faire en JQuery.
Il utilise un filtrage des données de texte à l'intérieur d'un tableau de données par l'intermédiaire d'un filtre sur la ligne de la table, mais il peut facilement être utilisé à d'autres fins.
Dans cet exemple, il permet de masquer toutes les lignes de la table où une correspondance exacte n'a pas été trouvé, puis filtrer par le début de la chaîne de valeur. La fonction trim() est utile dans le cas où tout ce qu'il y a des espaces vides, alors il affichera toujours tout, comme si la recherche n'a jamais été faite. Si vous voulez qu'il affiche à la recherche de l'entrée où il est n'importe où sur la chaîne, utilisez un * au lieu de ^. Les deux caractères spéciaux sont sensibles à la casse. Assurez-vous également que la commande masquer affiche en premier et que les deux sont présents, ou il ne fonctionnera pas correctement.
Voir un autre exemple ici, qui utilise à la fois l' ^ et * les caractères:
http://jsfiddle.net/heatwaveo8/2VKae/
OriginalL'auteur Ryan
mon code:
il a déjà été édité, merci
OriginalL'auteur