Wie kann ich das richtig überprüfen, ob ein string enthält NICHT ein bestimmtes Wort?
Ich versuche zurzeit herauszufinden, wie zur Lösung des oben genannten Problems.
Speziell möchte ich überprüfen, ob der string keine nicht enthalten das Wort "stream", die beide in groß-und Kleinbuchstaben.
Hier mein code bisher:
if (((gewaesser_name1.includes("Stream") == "false") ||
(gewaesser_name1.includes("stream") == "false")) &&
((gewaesser_name2.includes("Stream") == "false") ||
(gewaesser_name2.includes("stream") == "false")))
{var a= "..."}
Ist der code natürlich nicht funktionieren, da die Ergebnisse nicht das sind, was ich erwarten Sie zu sein.
Ich habe auch versucht, den indexOf
Methode vor, mithilfe der folgenden syntax-Varianten:
gewaesser_name2.indexOf("stream") == -1
gewaesser_name2.indexOf("stream") < 0
Keiner dieser Varianten scheinen für mich arbeiten. Könnte bitte jemand mir einen Tipp geben, was hier das problem? Ich benutzte die indexOf
Methode vor viele Male, aber immer, wenn ich wollte, um zu überprüfen, ob ein string enthielt ein bestimmtes Wort, nicht Umgekehrt.
- Normalisieren der Fall vor der Prüfung.
if (!name.toLowerCase().includes("stream")) {..
- Sie sollten mit
&&
, nicht||
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schlage ich
String+toLowerCase
und überprüfen Sie mit(String#indexOf
, denn es funktioniert in jedem browser.indexOf()
ist der richtige Ansatz und der Fall Problem kann einfach gelöst werden, indem das test-string, um den unteren oder oberen Fall vor dem test mit.toLowerCase()
oder.toUpperCase()
:JS:
Danke für das schnelle feedback Jungs, der code läuft nun einwandfrei in Ordnung!
Ich bin mit dem folgenden code:
`
dies ist eine operation, die Sie tun können, in regex:
JS:
Möchten Sie vielleicht vergleichen Sie die Ergebnisse Ihrer include() mit der strikt gleichberechtigten Operanden === false oder === es stimmt, es ist viel besser der Praxis jedoch nicht wirklich benötigt, gerade so aussieht, wie Sie könnte profitieren von zu wissen, die anderen als Vergleich von boolean in einen string ist eine seltsame Sache zu tun. Würde ich auch nicht prüfen "Stream" und "stream" versuchen Sie es mit toLowerCase() statt wie so var str1_check = gewaesser_name1.toLowerCase();
Ich würde überprüfen stream mit dem Kleinbuchstaben "Strom" als neue Saiten, alle in Kleinbuchstaben geschrieben werden, auch Sie wollen, dass Sie getrennt von Ihrem ursprünglichen Variablen, wie Sie können nicht wollen, diese Namen gezwungen zu Kleinbuchstaben. Ich würde verwenden str1_check.enthält("stream") zu überprüfen, ob diese Zeichenkette ist der string "stream", denn dieses Ergebnis ist truthy oder falsey, die Sie durchführen können Ihre überprüfen wie so.
Ich Sie sieht aus wie wenn die Logik hier war, wenn der erste name nicht enthalten "stream -" oder den Namen 1 und 2 enthalten nicht Strom sondern Ihre Prüfung name 1 mit Kleinbuchstaben "stream" und name 2 mit Großbuchstaben "stream". es sieht aus wie Sie gerade wollen beide den Namen nicht enthalten, stream, kann Sie viel leichter durchgeführt werden, wie dies.
Ich würde es vorziehen, javascript RegExp so:
JS: