Jaki jest najlepszy sposób sprawdzenia, czy ciąg zawiera tylko białe znaki?
Łańcuch może zawierać znaki połączone ze spacjami , ale nie tylko białe znaki.
javascript
string
whitespace
patad
źródło
źródło
Najprostsza odpowiedź, jeśli Twoja przeglądarka obsługuje tę
trim()
funkcjęif (myString && !myString.trim()) { //First condition to check if string is not empty //Second condition checks if string contains just whitespace }
źródło
if (/^\s+$/.test(myString)) { //string contains only whitespace }
ten sprawdza 1 lub więcej białych znaków, jeśli ją również dopasować pusty ciąg następnie zastąpić
+
z*
.źródło
Cóż, jeśli używasz jQuery, jest to prostsze.
if ($.trim(val).length === 0){ // string is invalid }
źródło
Po prostu porównaj ciąg z tym wyrażeniem regularnym:
if(mystring.match(/^\s+$/) === null) { alert("String is good"); } else { alert("String contains only whitespace"); }
źródło
if (!myString.replace(/^\s+|\s+$/g,"")) alert('string is only whitespace');
źródło
Wyrażenie regularne, którego użyłem, gdy chcę zezwolić na spacje w środku ciągu, ale nie na początku ani na końcu, było takie:
lub
Więc wiem, że to stare pytanie, ale możesz zrobić coś takiego:
if (/^\s+$/.test(myString)) { //string contains characters and white spaces }
lub możesz zrobić to, co powiedział nickf i użyć:
if (/\S/.test(myString)) { // string is not empty and not just whitespace }
źródło
Użyłem następującej metody, aby wykryć, czy ciąg zawiera tylko białe znaki. Dopasowuje również puste ciągi.
if (/^\s*$/.test(myStr)) { // the string contains only whitespace }
źródło
To może być szybkie rozwiązanie
return input < "\u0020" + 1;
źródło
return input < " 1";
które jest po prostu porównywaniem alfabetycznym. Dopóki dane wejściowe są posortowane poniżej „1”, zwraca wartość „prawda”. Przykład:return " asdfv34562345" < "\u0020" + 1;
zwraca wartość true.