Chcę spróbować wykonać wywołanie ciągu odpowiadające C # String.IsNullOrEmpty(string)
w javascript. Szukałem w Internecie, zakładając, że jest prosty telefon do wykonania, ale nie mogłem go znaleźć.
Na razie używam if(string === "" || string === null)
oświadczenia, aby to zakryć, ale wolałbym użyć predefiniowanej metody (z jakiegoś powodu wciąż otrzymuję niektóre wystąpienia, które przemykają)
Jakie jest najbliższe wywołanie javascript (lub jquery, jeśli ma takie), które byłoby równe?
javascript
jquery
Puchar Stanleya Phil
źródło
źródło
Odpowiedzi:
Nadmiernie się zastanawiasz. Null i pusty ciąg są wartościami fałszywymi w JavaScript.
if(!theString) { alert("the string is null or empty"); }
Falsey:
źródło
Jeśli z jakiegoś powodu chciałbyś tylko przetestować
null
iempty
mógłbyś zrobić:function isNullOrEmpty( s ) { return ( s == null || s === "" ); }
Uwaga: spowoduje to również złapanie undefined jako @Raynos wspomnianego w komentarzach.
źródło
return (s == null || s === "")
s == null
łapie obanull
iundefined
od tego czasunull == undefined
if (!string) { // is emtpy }
Jaki jest najlepszy sposób testowania pustego ciągu za pomocą jquery-out-of-the-box?
źródło
Jeśli wiesz, że
string
to nie jest liczba, to zadziała:if (!string) { . . .
źródło
string
nie jest w rzeczywistości ciąg ale numer zero, tostring
będzie falsey. Nie będzie problemu, jeśli wiemy, żestring
jest to rzeczywisty ciąg lub wartość null.możesz po prostu zrobić
if(!string) { //... }
Spowoduje to sprawdzenie
string
niezdefiniowanego, pustego i pustego ciągu.źródło
Dla jasności, gdy
if(!theString){//...}
theString jest niezadeklarowaną zmienną, spowoduje zgłoszenie niezdefiniowanego błędu, a nie stwierdzenie, że jest prawdziwy. Z drugiej strony, jeśli masz:if(!window.theString){//...}
lubvar theString; if(!theString){//...}
będzie działać zgodnie z oczekiwaniami. W przypadku, gdy zmienna nie może zostać zadeklarowana (w przeciwieństwie do bycia właściwością lub po prostu nie ustawionej), należy użyć:if(typeof theString === 'undefined'){//...}
Wolę stworzyć prototypową funkcję, która zamknie ją za Ciebie.
źródło
Ponieważ odpowiedź oznaczona jako poprawna zawiera mały błąd, oto moja najlepsza próba znalezienia rozwiązania. Mam dwie opcje, jedną, która przyjmuje ciąg, a drugą ciąg lub liczbę, ponieważ zakładam, że wiele osób miesza ciągi i liczby w javascript.
Kroki: -Jeśli obiekt jest pusty, jest to ciąg pusty lub pusty. -Jeśli typ nie jest ciągiem (lub liczbą), jego wartość w postaci ciągu jest pusta lub pusta. UWAGA: tutaj również możemy zgłosić wyjątek, w zależności od preferencji. -Jeśli przycięta wartość ciągu ma długość mniejszą niż 1, jest pusta lub pusta.
var stringIsNullOrEmpty = function(theString) { return theString == null || typeof theString != "string" || theString.trim().length < 1; } var stringableIsNullOrEmpty = function(theString) { if(theString == null) return true; var type = typeof theString; if(type != "string" && type != "number") return true; return theString.toString().trim().length < 1; }
źródło
można to powiedzieć logicznie
Powiedzmy, że masz zmienną o nazwie strVal, aby sprawdzić, czy jest pusta lub pusta
if (typeof (strVal) == 'string' && strVal.length > 0) { // is has a value and it is not null :) } else { //it is null or empty :( }
źródło
Możesz utworzyć jedną metodę użytkową, którą można ponownie wykorzystać w wielu miejscach, takich jak:
function isNullOrEmpty(str){ var returnValue = false; if ( !str || str == null || str === 'null' || str === '' || str === '{}' || str === 'undefined' || str.length === 0 ) { returnValue = true; } return returnValue; }
źródło