sous - supprimer un caractère d'une chaine javascript




Comment puis-je vérifier si la chaîne contient une sous-chaîne? (9)

La méthode includes () détermine si une chaîne peut être trouvée dans une autre chaîne, en retournant true ou false selon le cas.

Syntaxe: -string.includes (searchString [, position])

searchString: -Une chaîne à rechercher dans cette chaîne.

position: -Optional. La position dans cette chaîne à laquelle commencer à chercher searchString; par défaut à 0.

string = 'LOL';
console.log(string.includes('lol')); // returns false 
console.log(string.includes('LOL')); // returns true 

Cette question a déjà une réponse ici:

J'ai un panier qui affiche les options de produits dans un menu déroulant et s'ils sélectionnent "oui", je veux que d'autres champs soient visibles sur la page.

Le problème est que le panier inclut également le modificateur de prix dans le texte, qui peut être différent pour chaque produit. Le code suivant fonctionne:

$(document).ready(function() {
    $('select[id="Engraving"]').change(function() {
        var str = $('select[id="Engraving"] option:selected').text();
        if (str == "Yes (+ $6.95)") {
            $('.engraving').show();
        } else {
            $('.engraving').hide();
        }
    });
});

Cependant, je préfère utiliser quelque chose comme ça, qui ne fonctionne pas:

$(document).ready(function() {
    $('select[id="Engraving"]').change(function() {
        var str = $('select[id="Engraving"] option:selected').text();
        if (str *= "Yes") {
            $('.engraving').show();
        } else {
            $('.engraving').hide();
        }
    });
});

Je veux seulement effectuer l'action si l'option choisie contient le mot "Oui", et ignorerais le modificateur de prix.


Autrement:

var testStr = "This is a test";

if(testStr.contains("test")){
    alert("String Found");
}

** Testé sur Firefox, Safari 6 et Chrome 36 **


ECMAScript 6 introduit documentation , précédemment nommé contains .

Il peut être utilisé comme ceci:

'foobar'.includes('foo'); // true
'foobar'.includes('baz'); // false

Il accepte également un deuxième argument facultatif qui spécifie la position à partir de laquelle commencer la recherche:

'foobar'.includes('foo', 1); // false
'foobar'.includes('bar', 1); // true

Il peut être polyfilled pour le faire fonctionner sur les vieux navigateurs.


Il est assez tard pour écrire cette réponse, mais j'ai pensé à l'inclure de toute façon. String.prototype possède maintenant une méthode qui permet de vérifier la sous-chaîne. Cette méthode est sensible à la casse.

var str = 'It was a good date';
console.log(str.includes('good')); // shows true
console.log(str.includes('Good')); // shows false

Pour vérifier une sous-chaîne, l'approche suivante peut être prise:

if (mainString.toLowerCase().includes(substringToCheck.toLowerCase())) {
    // mainString contains substringToCheck
}

Consultez la documentation pour en savoir plus.


Renvoie le nombre de fois que le mot-clé est inclus dans la chaîne.

var count = "I have one keyword".match(/keyword/g);
var clean_count = !count ? false : count.length;

Rien de tout cela n'a fonctionné pour moi car il y avait des espaces vides mais c'est ce que j'ai fait

tr = table.getElementsByTagName("tr");

    for (i = 0; i < tr.length; i++) {
        td = tr[i].getElementsByTagName("td")[0];
        bottab.style.display="none";
        bottab2.style.display="none";
        if (td) {
        var getvar=td.outerText.replace(/\s+/, "") ;

            if (getvar==filter){
                tr[i].style.display = "";
            }else{
                tr[i].style.display = "none";
            }

        }
    }

Vous pouvez également vérifier si le mot exact est contenu dans une chaîne. Par exemple:

function containsWord(haystack, needle) {
    return (" " + haystack + " ").indexOf(" " + needle + " ") !== -1;
}

Usage:

containsWord("red green blue", "red"); // true
containsWord("red green blue", "green"); // true
containsWord("red green blue", "blue"); // true
containsWord("red green blue", "yellow"); // false

C'est ainsi que jQuery fait sa méthode hasClass.


Vous pouvez utiliser search ou match pour cela.

str.search( 'Yes' )

retournera la position du match, ou -1 s'il n'est pas trouvé.


vous pouvez définir une méthode d'extension et l'utiliser plus tard.

String.prototype.contains = function(it) 
{ 
   return this.indexOf(it) != -1; 
};

afin que vous puissiez utiliser dans votre page n'importe où comme:

var str="hello how are you";
str.contains("are");

ce qui retourne vrai .

Référez-vous à la publication ci-dessous pour plus de méthodes d'assistance d'extension. Méthodes d'assistance Javascript





contains