Ich versuche zu überprüfen, ob eine Zeichenfolge Leerzeichen enthält . Ich habe diese Funktion gefunden, aber sie scheint nicht zu funktionieren:
function hasWhiteSpace(s)
{
var reWhiteSpace = new RegExp("/^\s+$/");
// Check for white space
if (reWhiteSpace.test(s)) {
//alert("Please Check Your Fields For Spaces");
return false;
}
return true;
}
Übrigens habe ich Zitate hinzugefügt RegExp
.
Stimmt irgendetwas nicht? Gibt es etwas Besseres, das ich verwenden kann? Hoffentlich JQuery.
Antworten:
Sie können einfach die indexOf- Methode für die Eingabezeichenfolge verwenden:
Oder Sie können die Testmethode auf einem einfachen RegEx verwenden:
Dadurch wird auch nach anderen Leerzeichen wie Tab gesucht.
quelle
Ihre Regex passt zu nichts, so wie es ist. Sie müssen auf jeden Fall die Anführungszeichen entfernen - die
"/"
Zeichen sind ausreichend./^\s+$/
prüft, ob der String ALL Whitespace ist:^
entspricht dem Anfang der Zeichenfolge.\s+
bedeutet mindestens 1, möglicherweise mehr Leerzeichen.$
stimmt mit dem Ende der Zeichenfolge überein.Versuchen Sie, den regulären Ausdruck durch
/\s/
(und keine Anführungszeichen) zu ersetzen.quelle
Diese Funktion sucht nach anderen Arten von Leerzeichen, nicht nur nach Leerzeichen (Tabulator, Wagenrücklauf usw.).
Wenn Sie Lodash nicht verwenden möchten , finden Sie hier eine einfache
some
Implementierung mit 2s
:Dann ersetzen Sie einfach
some
mitssome
.Verwenden Sie für diejenigen in Node:
quelle
Hier ist meine vorgeschlagene Validierung:
quelle
Ein einfacher Ansatz besteht darin, die Länge der ursprünglichen Zeichenfolge mit der Länge der Zeichenfolge zu vergleichen, um Leerzeichen durch nichts zu ersetzen. Beispielsweise:
quelle
Mit Ergänzungen der Sprache ist es viel einfacher, und Sie können von einer frühen Rückkehr profitieren:
Ich habe keinen Leistungsbenchmark durchgeführt, aber diese sollten schneller als Regex sein, aber für kleine Textausschnitte gibt es sowieso keinen so großen Unterschied.
quelle
Einige andere haben Antworten gepostet. Es gibt einige offensichtliche Probleme, wie die Rückkehr,
false
wenn der Regex übergeben wird, und die Operatoren^
und$
geben Start / Ende an, während die gesuchte Frage (beliebige) Leerzeichen enthält und nicht: nur Leerzeichen enthält (die der reguläre Ausdruck überprüft).Außerdem ist das Problem nur ein Tippfehler.
Ändere das...
Dazu ...
Wenn Sie einen regulären Ausdruck verwenden
RegExp()
, müssen Sie die folgenden zwei Schritte ausführen .../
.\\s
anstelle von\s
usw.Voll funktionsfähige Demo aus dem Quellcode ....
quelle