ForHosting KIT · Outils pour développeurs

Vérifiez si un texte contient une sous-chaîne

Cet outil répond directement à une question de validation courante : un texte comprend-il la sous-chaîne attendue ?

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Il renvoie un booléen et la position, comptée à partir de zéro, de la première correspondance, ou -1 si aucune n’existe. Vous pouvez respecter exactement les majuscules et minuscules ou les ignorer. Le résultat est déterministe, facile à tester et utile dès qu’un processus nécessite une condition de recherche rapide, sans expression régulière ni rapprochement approximatif.

Recherchez une sous-chaîne avec un résultat sans ambiguïté

Placez la valeur complète dans text et la séquence recherchée dans substring. La réponse contient contains, égal à true lorsqu’une correspondance existe, ainsi que position, qui indique le début de la première occurrence. Les positions commencent à zéro : une sous-chaîne située tout au début a donc la position 0. En cas d’absence, le résultat vaut false et la position -1, ce qui distingue clairement une absence d’une occurrence initiale. Cette association convient aussi bien à une lecture humaine qu’à un logiciel appliquant une condition. L’opération recherche une sous-chaîne littérale et contiguë. Les espaces, la ponctuation et les caractères répétés sont du texte ordinaire, pas des motifs ; aucun échappement d’expression régulière n’est nécessaire. Si la même séquence apparaît plusieurs fois, seule la première position est renvoyée. Ce comportement sert particulièrement à vérifier la présence d’un marqueur attendu et à déterminer où une analyse peut commencer. Une sous-chaîne vide est refusée, car toute chaîne la contient techniquement et produirait ainsi une validation trompeuse et peu exploitable.

Déterminez si la casse doit être respectée

L’option case_sensitive vaut true par défaut. Dans ce mode, majuscules et minuscules doivent correspondre exactement : « Ready » ne correspond pas à « ready ». Cette comparaison stricte convient aux identifiants, marqueurs de protocole, références de produits et contenus dont la capitalisation est significative. Choisissez false lorsque vous souhaitez une vérification textuelle pratique qui traite ces variantes de la même façon, par exemple pour repérer un statut dans des notes saisies par un utilisateur ou vérifier qu’un titre contient une expression. Le mode insensible à la casse normalise de façon cohérente le texte source et la sous-chaîne avant de chercher la première occurrence ; la position renvoyée désigne néanmoins toujours le texte d’origine. L’outil ne supprime pas les espaces en bordure et ne modifie pas la ponctuation, qui restent donc significatifs. Il n’effectue pas non plus de neutralisation des accents, de racinisation, de translittération, de recherche approximative ou de détection de mots entiers. Ainsi, « cat » peut correspondre aux trois premières lettres de « catalog ». Ces règles limitées garantissent un résultat reproductible sans hypothèse linguistique implicite.

Exploitez la position avec précaution dans vos validations

Un processus courant envoie une valeur candidate, examine contains, puis choisit une branche sans devoir interpréter le champ numérique. Lorsqu’une correspondance existe, position peut servir au diagnostic, à un aperçu ou à une analyse ultérieure. Un contrôle d’importation peut, par exemple, confirmer qu’un en-tête comprend un jeton obligatoire et mémoriser son point de départ ; un test peut vérifier qu’un texte généré contient une formule approuvée ; un outil d’assistance peut aussi détecter un marqueur connu dans une ligne de journal collée. Considérez toujours la position comme un indice de chaîne JavaScript mesuré en unités de code UTF-16. Pour un texte latin courant, cela correspond au comptage familier des caractères, mais certains emoji et symboles Unicode occupent deux unités. L’indice natif de la plateforme est volontairement renvoyé afin que le navigateur et l’API se comportent à l’identique et que vous puissiez l’utiliser directement avec les méthodes de découpage JavaScript. Il s’agit d’une recherche littérale, pas d’un filtre de sécurité ni d’un classificateur. Validez séparément la structure des formats sensibles et utilisez un analyseur spécialisé si les limites, l’échappement ou toutes les occurrences sont importants.

Valider un texte généré

Confirmez qu’un message généré comporte une mention obligatoire ou une formule approuvée avant sa publication.

Contrôler des marqueurs d’importation

Vérifiez qu’un en-tête ou un enregistrement collé contient le jeton attendu et repérez où l’analyse peut commencer.

Tester des libellés et des statuts

Assurez-vous que la sortie d’une application comporte un libellé connu, avec ou sans respect de la casse.

Que contient le résultat ?

Il indique si une correspondance existe, la position initiale de la première occurrence et le réglage de casse employé.

Quelle position est renvoyée en l’absence de correspondance ?

La position vaut -1 et contains vaut false. Une occurrence au tout début renvoie au contraire la position 0.

La recherche respecte-t-elle la casse par défaut ?

Oui. Choisissez false pour case_sensitive lorsque les variantes en majuscules et minuscules doivent être équivalentes.

La sous-chaîne accepte-t-elle des expressions régulières ?

Non. Elle est interprétée comme du texte littéral ; la ponctuation et les symboles n’ont aucune syntaxe de motif.

Puis-je rechercher une sous-chaîne vide ?

Non. Elle est refusée, car sa correspondance universelle est rarement utile dans une validation.

Quel est le prix d’une requête API ?

Chaque requête API coûte $0.002. La même logique déterministe peut également s’exécuter dans le navigateur.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/str/contains

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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"}'
{
  "text": "Release candidate passed validation.",
  "substring": "passed"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "str.contains",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →