jQuery String enthält Manipulation?

Lesezeit: 2 Minuten

Benutzer-Avatar
aherick

In den meisten Sprachen wie C# zum Beispiel können Sie bei gegebener Zeichenfolge testen (boolean), ob diese Zeichenfolge eine andere Zeichenfolge enthält, im Grunde eine Teilmenge dieser Zeichenfolge.

string x = test2;


if(x.contains("test"))
    // do something

Wie kann ich das auf einfache Weise mit Javascript/Jquery machen?

  • mögliches Duplikat von Method wie String.contains() in JavaScript

    – Bergi

    23. März 2013 um 16:08 Uhr

Benutzer-Avatar
Paolo Bergantino

Dies ist damit erledigt Index vongibt jedoch -1 statt False zurück, wenn es nicht gefunden wird.

Syntax
string.indexOf(searchValue[, fromIndex])

Parameter
searchValue – Eine Zeichenfolge, die den zu suchenden Wert darstellt.
fromIndex – Der Standort innerhalb string um die Suche zu starten. Es kann eine beliebige Ganzzahl zwischen 0 und der Länge von sein string. Der Standardwert ist 0.

Zurückkehren

Der erste Index in string an dem der Anfang des Teilstrings zu finden ist, oder -1 falls string enthält keine Instanzen der Teilzeichenfolge.

  • Aha indexOf unterscheidet zwischen Groß- und Kleinschreibung. Um Groß- und Kleinschreibung zu vergleichen, verwende ich if(t.toUpperCase().indexOf(s.toUpperCase()) >= 0) { /* found */ }

    – Marioosh

    4. Januar 2013 um 8:28 Uhr

Benutzer-Avatar
eKek0

Wie Paolo und Cletus sagten, können Sie dies mit indexOf() tun.

Erwähnenswert ist, dass es sich um eine Javascript-Funktion handelt, nicht um eine jQuery-Funktion.

Wenn Sie möchten, dass eine jQuery-Funktion dies tut, können Sie sie verwenden:

jQuery.fn.contains = function(txt) { return jQuery(this).indexOf(txt) >= 0; }

  • Sie haben einen Fehler in dieser Implementierung: Wenn die gesuchte Zeichenfolge mit txt beginnt, wird sie falsch zurückgegeben. Verwenden Sie >= anstelle von >.

    – Jakob Krall

    21. Oktober 2009 um 15:21 Uhr

  • Korrigiert für den Kommentar von Jacob

    – eKek0

    21. Oktober 2009 um 19:58 Uhr

  • jQuery(this) gibt ein jQuery-Objekt zurück, keinen String. indexOf existiert nicht innerhalb dieses jQuery-Objekts. this wird auch keine Zeichenfolge sein, also müssen Sie wissen, welcher Teil davon ist this Sie überprüfen möchten txt. Vielleicht return this.src.indexOf(txt) >= 0;?

    – Rudie

    20. Dezember 2010 um 17:01 Uhr


Der indexOf-Operator funktioniert für einfache Zeichenfolgen. Wenn Sie etwas Komplizierteres brauchen, sollten Sie darauf hinweisen Javascript unterstützt reguläre Ausdrücke.

Ein einfaches Enthält kann zum Beispiel auch nützlich sein:

<div class="test">Handyman</div>


$(".test:contains('Handyman')").html("A Bussy man");

Ein funktionierendes Beispiel, bei dem nur indexOf und jQuery verwendet werden

// Add span tag, if not set
$(document).ready(function(c) {
  $('div#content ul.tabs li a').each(function(c){
    // Add span wrapper if not there already
    if( $(this).html().indexOf('span') == -1){
      $(this).html('<span class="tab">' + $(this).html() + '</span>');
    }
  });
});

DT

  • Sind Sie Dave Thomas von Wendy’s? Wenn ja, habe ich dort zu Mittag gegessen. Toller Burger.

    – Ziege

    20. Januar 2011 um 23:05 Uhr

Benutzer-Avatar
patmortech

Versuchen Sie dies umzusetzen

function function1() {
    var m = document.all.myDiv.contains(myB);
    if (m == true){ 
        m = "YES"
    } else {
        m = "NO"
    }
    alert(m)
}

  • Sind Sie Dave Thomas von Wendy’s? Wenn ja, habe ich dort zu Mittag gegessen. Toller Burger.

    – Ziege

    20. Januar 2011 um 23:05 Uhr

1216550cookie-checkjQuery String enthält Manipulation?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy