Saya perlu memeriksa untuk melihat apakah sebuah variabel null atau memiliki semua ruang kosong atau hanya kosong ("").
Saya memiliki yang berikut ini, tetapi tidak berhasil:
var addr;
addr = " ";
if (!addr) {
// pull error
}
Jika saya melakukan hal berikut, ini berhasil:
if (addr) {
}
Yang saya butuhkan adalah sesuatu seperti metode C # String.IsNullOrWhiteSpace(value)
.
javascript
jquery
Nate Pet
sumber
sumber
has *any* empty spaces
? Atau maksud Andais all empty spaces
?Jawaban:
Solusi non-jQuery yang meniru lebih dekat
IsNullOrWhiteSpace
, tetapi untuk mendeteksi null, kosong, atau hanya semua spasi:function isEmptyOrSpaces(str){ return str === null || str.match(/^ *$/) !== null; }
...kemudian:
var addr = ' '; if(isEmptyOrSpaces(addr)){ // error }
* EDIT * Harap dicatat bahwa op secara khusus menyatakan:
Jadi sementara ya, "ruang putih" mencakup lebih dari nol, spasi atau kosong, jawaban saya dimaksudkan untuk menjawab pertanyaan spesifik op. Ini penting karena op mungkin TIDAK ingin menangkap hal-hal seperti tab, misalnya.
sumber
/^\s*$/
untuk menangkapnya juga.test
juga lebih cepat seingat saya.if (addr == null || addr.trim() === ''){ //... }
Sebuah
null
perbandingan juga akan menangkapundefined
. Jika Anda inginfalse
lulus juga, gunakan!addr
. Untuk penukaran kompatibilitas browser munduraddr.trim()
untuk$.trim(addr)
.sumber
addr
nol.==
dan yang kedua cocok===
?Kamu bisa memakai
if(addr && (addr = $.trim(addr)))
Ini memiliki keuntungan dengan benar-benar menghapus whitespace luar
addr
daripada hanya mengabaikannya saat melakukan pemeriksaan.Referensi: http://api.jquery.com/jQuery.trim/
sumber
addr
diinisialisasi dengan misalnya integer.isEmptyOrSpaces(str){ return !str || str.trim() === ''; }
sumber
Anda dapat membuat metode Anda sendiri Setara dengan
String.IsNullOrWhiteSpace(value)
function IsNullOrWhiteSpace( value) { if (value== null) return true; return value.replace(/\s/g, '').length == 0; }
sumber
\s
cocok dengan lebih dari sekadar spasiSaat memeriksa ruang putih, metode c # menggunakan standar Unicode. Spasi putih mencakup spasi, tab, carriage return, dan banyak kode karakter non-cetak lainnya. Jadi Anda lebih baik menggunakan:
function isNullOrWhiteSpace(str){ return str == null || str.replace(/\s/g, '').length < 1; }
sumber
Versi sederhana di atas: (dari sini: https://stackoverflow.com/a/32800728/47226 )
function isNullOrWhitespace( input ) { return !input || !input.trim(); }
sumber
Pertanyaan lama, tapi saya pikir itu membutuhkan jawaban yang lebih sederhana.
Anda cukup melakukan:
var addr = " "; if (addr && addr.trim()) { console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only."); }
sumber
addr && addr.trim()
? Dengan satu single&
itu tidak berhasil untuk saya tetapi berhasil dengan&&
.Coba ini
/** * Checks the string if undefined, null, not typeof string, empty or space(s) * @param {any} str string to be evaluated * @returns {boolean} the evaluated result */ function isStringNullOrWhiteSpace(str) { return str === undefined || str === null || typeof str !== 'string' || str.match(/^ *$/) !== null; }
Anda bisa menggunakannya seperti ini
isStringNullOrWhiteSpace('Your String');
sumber
isEmptyOrSpaces(str){ return str === null || str.trim().length>0; }
sumber
function isEmptyOrSpaces(str){ return str === null || str.match(/^[\s\n\r]*$/) !== null; }
sumber
Anda dapat mencoba ini:
do { var op = prompt("please input operatot \n you most select one of * - / * ") } while (typeof op == "object" || op == ""); // execute block of code when click on cancle or ok whthout input
sumber