JS - jQuery inarray ignoreCase() et()

bien, je suis plutôt du PHP personne, et mon JS compétences sont proches à aucun quand il s'agit de toute JS autres que de simples liés à la conception des opérations , donc excusez-moi si je demande de l'évidence .

les opérations suivantes serait un jeu d'enfant en PHP (et peut-être aussi en JS, mais je me bats avec des inconnus syntaxe ici ...)

Il est une sorte de validation de l'entrée

var ar = ["BRS201103-0783-CT-S", "MAGIC WORD", "magic", "Words", "Magic-Word"];

    jQuery(document).ready(function() {
        jQuery("form#searchreport").submit(function() {
        if (jQuery.inArray(jQuery("input:first").val(), ar) != -1){ 
                jQuery("#contentresults").delay(800).show("slow");

            return false;
          }

Cette question a 2 parties .

  • 1 - comment puis-je le rendre possible pour que la matrice soit insensible à la casse ?

E. g. - BRS201103-0783-CT-S donnera le même résultat que brs201103-0783-ct-s ET Brs201103-0783-CT-s ou MAGIC magic Magic MaGIc

fondamentalement, j'ai besoin de quelque chose comme ignoreCase() pour le tableau , mais je ne pouvais pas trouver toutes les références à ça en jQuery ni JS...

J'ai essayé toLowerCase() - mais Il ne fonctionne pas sur le tableau (ittirating??) et aussi, serait-il résoudre le casse mixte ?

  • 2 - Comment puis-je faire la fonction de reconnaître uniquement les pièces ou
    les combinaisons des éléments ?

E. g. - si l'un des types de "word" , je voudrais que ça passe comme "words" , et aussi si quelqu'un types "some word" il doit passer (contenant "mot" )

Pour la 1, je venais de taper votre JS tableau dans lowecase alors appel if (jQuery.inArray(jQuery("input:first").val().toLowerCase(), ar) != -1){, la deuxième partie de la question paraît un peu trop large. Quelles sont les règles spécifiques? word est contenue dans words ok, mais some word n'est pas contenue dans words.
merci pour le commentaire , ce que je voulais dire, c'est some word contient word et aussi words contient word(partie de la chaîne...)
Ok, la chose la plus étrange . mettre val().toLowerCase() va travailler sur un mot comme "magie/Magie" - mais maintenant, il renvoie la valeur false à la chaîne BRS201103-0783-CT-S n'importe comment j'y entrer (les petites lettres minuscules , majuscules ou mixte..
Probablement parce que la magic est minuscule dans votre tableau, alors que BRS201103-0783-CT-S ne l'est pas. Vérifier alex réponse, il a posté une fonction simple de passer l'ensemble de votre tableau en lettres minuscules. :)
Ok, je vérifie ça maintenant, mais seulement pour mieux comprendre , si mon tableau sera en bas de casse , que chaque entrée affaire va passer ?

OriginalL'auteur Obmerk Kronen | 2012-07-16