Prüfen Sie, ob Text eine Teilzeichenfolge enthält
Dieses Prüfwerkzeug beantwortet eine häufige Validierungsfrage eindeutig: Enthält ein Text die von Ihnen angegebene Teilzeichenfolge?
Im Browser ausführen – kostenlos
Es liefert einen booleschen Wert und die nullbasierte Position des ersten Treffers oder -1, wenn kein Treffer vorliegt. Sie können Groß- und Kleinschreibung exakt berücksichtigen oder ignorieren. Das Ergebnis ist deterministisch, leicht zu testen und überall dort nützlich, wo ein Ablauf eine schnelle Suchbedingung ohne reguläre Ausdrücke oder unscharfen Abgleich benötigt.
Prüfen Sie eine Teilzeichenfolge mit eindeutigem Ergebnis
Geben Sie den vollständigen Wert unter text und die gesuchte Folge unter substring an. Die Antwort enthält contains; dieser Wert ist true, wenn ein Treffer existiert. Außerdem gibt position an, wo der erste Treffer beginnt. Positionen werden ab null gezählt, sodass eine direkt am Anfang gefundene Teilzeichenfolge die Position 0 hat. Fehlt sie, lauten die Ergebnisse false und -1. Dadurch bleibt ein fehlender Treffer klar von einem Treffer am Anfang unterscheidbar. Dieses Wertepaar lässt sich sowohl von Menschen gut lesen als auch von Software als Bedingung verwenden. Der Vorgang sucht nach einer wörtlichen, zusammenhängenden Teilzeichenfolge. Leerzeichen, Satzzeichen und wiederholte Zeichen gelten als gewöhnlicher Text und nicht als Muster; Zeichen für reguläre Ausdrücke müssen deshalb nicht maskiert werden. Kommt dieselbe Teilzeichenfolge mehrfach vor, wird nur die erste Position gemeldet. Dies eignet sich besonders für Validierungen, bei denen ein erwarteter Marker bestätigt und der mögliche Beginn einer weiteren Verarbeitung ermittelt werden soll. Eine leere Teilzeichenfolge wird abgelehnt, da technisch jede Zeichenfolge sie enthält und das Ergebnis irreführend wäre.
Legen Sie die Beachtung der Groß- und Kleinschreibung fest
Die Option case_sensitive ist standardmäßig true. In diesem Modus müssen Groß- und Kleinbuchstaben genau übereinstimmen: Die Suche nach „Ready“ findet „ready“ nicht. Ein exakter Abgleich ist für Kennungen, Protokollmarker, Produktcodes und alle Inhalte sinnvoll, bei denen die Schreibweise eine Bedeutung besitzt. Stellen Sie die Option auf false, wenn Sie eine praktische Textprüfung wünschen, die solche Varianten gleichbehandelt. Das ist etwa bei einem Statuswort in frei eingegebenen Notizen oder bei einer Phrase in einer Überschrift hilfreich. Im Modus ohne Beachtung der Schreibweise werden Quelltext und Suchfolge vor der Ermittlung des ersten Treffers einheitlich normalisiert; die gemeldete Position bezieht sich dennoch auf den Originaltext. Die Fähigkeit entfernt weder äußere Leerzeichen noch verändert sie Satzzeichen, sodass beide weiterhin relevant sind. Akzente werden nicht vereinheitlicht; auch Wortstammermittlung, Transliteration, unscharfer Vergleich und Ganzworterkennung finden nicht statt. So kann „cat“ den Anfang von „catalog“ treffen. Der eng gefasste Funktionsumfang hält jedes Ergebnis reproduzierbar und verhindert unbemerkte sprachliche Annahmen.
Verwenden Sie die Position sicher in Validierungsabläufen
Ein typischer Ablauf sendet einen zu prüfenden Wert, wertet contains aus und verzweigt, ohne das numerische Feld interpretieren zu müssen. Liegt ein Treffer vor, kann position für Diagnosen, Vorschauen oder einen späteren Verarbeitungsschritt genutzt werden. Eine Importprüfung kann zum Beispiel bestätigen, dass eine Kopfzeile ein vorgeschriebenes Token enthält, und dessen Anfang festhalten. Ein Test kann kontrollieren, ob erzeugter Text eine genehmigte Formulierung enthält. Ein Supportwerkzeug kann einen bekannten Marker in einer eingefügten Protokollzeile erkennen. Behandeln Sie die zurückgegebene Position stets als JavaScript-Zeichenfolgenindex in UTF-16-Codeeinheiten. Bei gewöhnlichem lateinischem Text entspricht dies der vertrauten Zeichenzählung; einige Emoji und seltenere Unicode-Zeichen belegen jedoch zwei Einheiten. Der native Plattformindex wird bewusst ausgegeben, damit Browser und API identisch arbeiten und Sie ihn direkt mit JavaScript-Methoden zum Ausschneiden verwenden können. Es handelt sich um eine wörtliche Suche, nicht um eine Sicherheitsbereinigung oder Inhaltsklassifizierung. Prüfen Sie sensible Formate gesondert und verwenden Sie einen spezialisierten Parser, wenn Grenzen, Maskierungsregeln oder mehrere Treffer entscheidend sind.
Anwendungsfälle
Erzeugten Text validieren
Bestätigen Sie vor der Veröffentlichung, dass eine erzeugte Nachricht einen vorgeschriebenen Hinweis oder eine freigegebene Formulierung enthält.
Importmarker kontrollieren
Prüfen Sie eine eingefügte Kopfzeile oder einen Datensatz auf das erwartete Token und ermitteln Sie den möglichen Analysebeginn.
Beschriftungen und Statusmeldungen testen
Stellen Sie sicher, dass eine Anwendungsausgabe eine bekannte Beschriftung mit oder ohne Beachtung der Schreibweise enthält.
Häufige Fragen
Welche Angaben enthält das Ergebnis?
Es nennt das Vorhandensein eines Treffers, dessen erste nullbasierte Position und die verwendete Einstellung zur Schreibweise.
Welche Position wird ohne Treffer zurückgegeben?
Die Position ist -1 und contains ist false. Ein Treffer direkt am Anfang liefert dagegen die Position 0.
Wird die Groß- und Kleinschreibung standardmäßig beachtet?
Ja. Setzen Sie case_sensitive auf false, wenn Varianten mit Groß- und Kleinbuchstaben gleichwertig sein sollen.
Unterstützt die Teilzeichenfolge reguläre Ausdrücke?
Nein. Sie gilt als wörtlicher Text; Satz- und Sonderzeichen besitzen daher keine Mustersyntax.
Kann ich nach einer leeren Teilzeichenfolge suchen?
Nein. Leere Teilzeichenfolgen werden abgelehnt, weil ihr universeller Treffer für Validierungen kaum nützlich ist.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Dieselbe deterministische Logik kann auch im Browser ausgeführt werden.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/str/contains \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Release candidate passed validation.","substring":"passed"}'const res = await fetch("https://api.kit.forhosting.com/str/contains", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Release candidate passed validation.",
"substring": "passed"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/contains",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Release candidate passed validation.",
"substring": "passed"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/contains", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Release candidate passed validation.","substring":"passed"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Release candidate passed validation.","substring":"passed"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/contains", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "Release candidate passed validation.",
"substring": "passed"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.contains",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |