jQuery- oder JavaScript-Äquivalent der PHP-Strpos-Funktion zum Suchen von Zeichenfolgen auf einer Seite

Lesezeit: 2 Minuten

Benutzer-Avatar
Tom

Gibt es eine entsprechende Funktion in JavaScript oder jQuery ähnlich strpos bei PHP?

Ich möchte eine Zeichenfolge in einem Element auf einer Seite finden. Die Zeichenfolge, die ich suche, ist:

td class="SeparateColumn"

Ich möchte etwas, wo ich es so ausführen kann, um zu finden:

if $("anystring")
  then do it

  • Sie verwenden das bereits im Klartext vorhandene Javascript?

    Benutzer395760

    20. Oktober 2010 um 13:15 Uhr

  • Ich verstehe, Sie möchten also eine ganze Seite nach einer Zeichenfolge durchsuchen?

    – JAL

    20. Oktober 2010 um 13:19 Uhr

  • Wenn ich versuche, in jQuery zu verwenden, erhalte ich “indexOf is not a function”. Gibt es eine andere Möglichkeit, dies mit Javascript zu tun? ? ? HILFE!

    – Brian Patterson

    10. Dezember 2011 um 22:42 Uhr

Benutzer-Avatar
JAL

Ich nehme an, Sie meinen, ob eine Zeichenfolge ein Zeichen enthält, und die Position in der Zeichenfolge – Sie möchten die verwenden indexOf() Methode einer Zeichenfolge in JS. Hier sind die relevante Dokumente.


Okay, Sie möchten also die ganze Seite durchsuchen! Das :contains() Selektor wird das tun. Sehen die jQuery-Dokumentation zum :contains.

Um jedes Element auf der Seite zu durchsuchen, verwenden Sie

var has_string = $('*:contains("search text")');

Wenn Sie jQuery-Elemente zurückbekommen, war die Suche erfolgreich. Zum Beispiel auf dieser Seite

var has_string=$('*:contains("Alex JL")').length
//has_string is 18
var has_string=$('*:contains("horsey rodeo")').length
//has_string if 0. So, you could an `if` on this and it would work as expected.

  • Natürlich macht die Aufnahme von „Pferderodeo“ in das Beispiel den letzten Teil technisch falsch, aber wir werden uns nicht mit diesem Rätsel befassen.

    – JAL

    20. Oktober 2010 um 13:32 Uhr

  • klingt gut; Wie kann ich überprüfen, ob das Element

    eine bestimmte Zeichenfolge auf dieser Seite hat

    – Tom

    20. Oktober 2010 um 13:39 Uhr

  • @Tom if($('td.SeparateColumn:contains("the string")')){/* do something*/} Sollte es tun.

    – JAL

    20. Oktober 2010 um 13:50 Uhr


  • danke, aber das schlägt fehl: if(jQuery(“tr.SeparateRow:contains(‘mycode’)”))

    – Tom

    20. Oktober 2010 um 13:55 Uhr


  • @Tom scheitert auf welche Weise? Ein Fehler oder der String wird nicht gefunden? Ach – hast du tr.SeparateRowIch denke du meinst td.SeparateRow.

    – JAL

    20. Oktober 2010 um 14:17 Uhr


Benutzer-Avatar
Spudley

Sie brauchen dafür kein jquery – einfaches altes Javascript reicht aus, wenn Sie die verwenden .indexof() Methode.

Wenn Sie jedoch wirklich eine exakte Syntaxübereinstimmung für PHPs strpos() wünschen, würde so etwas wie das hier funktionieren:

function strpos (haystack, needle, offset) {
  var i = (haystack+'').indexOf(needle, (offset || 0));
  return i === -1 ? false : i;
}

Hinweis: Diese Funktion stammt von hier: http://phpjs.org/functions/strpos:545

JSFiddle

  • IE8 und darunter werden nicht unterstützt indexOf.

    – MacMac

    20. Oktober 2010 um 13:44 Uhr


  • @YouBook, das ist Array.indexOf(), nicht String.indexOf(), das von älteren Versionen von IE nicht unterstützt wird.

    – JAL

    20. Oktober 2010 um 21:45 Uhr

1251380cookie-checkjQuery- oder JavaScript-Äquivalent der PHP-Strpos-Funktion zum Suchen von Zeichenfolgen auf einer Seite

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

Privacy policy