Saya mencoba memeriksa apakah string memiliki spasi putih . Saya menemukan fungsi ini tetapi sepertinya tidak berfungsi:
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;
}
Ngomong-ngomong, saya menambahkan kutipan ke RegExp
.
Apakah ada yang salah? Apakah ada yang lebih baik yang bisa saya gunakan? Semoga JQuery.
Jawaban:
Anda cukup menggunakan metode indexOf pada string input:
Atau Anda dapat menggunakan metode pengujian, dengan RegEx sederhana:
Ini juga akan memeriksa karakter spasi putih lainnya seperti Tab.
sumber
Regex Anda tidak akan cocok dengan apa pun, apa adanya. Anda pasti perlu menghapus tanda kutip -
"/"
karakternya cukup./^\s+$/
sedang memeriksa apakah string SEMUA spasi:^
cocok dengan awal string.\s+
berarti setidaknya 1, mungkin lebih, spasi.$
cocok dengan ujung string.Coba ganti regex dengan
/\s/
(dan tanpa tanda kutip)sumber
Fungsi ini memeriksa jenis spasi putih lainnya, bukan hanya spasi (tab, carriage return, dll.)
Jika Anda tidak ingin menggunakan Lodash , berikut adalah
some
implementasi sederhana dengan 2s
:Kemudian ganti saja
some
denganssome
.Untuk pengguna di Node, gunakan:
sumber
Berikut adalah validasi yang saya sarankan:
sumber
Salah satu pendekatan sederhana yang dapat Anda lakukan adalah membandingkan panjang string asli dengan string agar spasi putih diganti tanpa apa pun. Sebagai contoh:
sumber
Dengan tambahan bahasa, ini jauh lebih mudah, ditambah Anda dapat memanfaatkan pengembalian awal:
Saya tidak menjalankan tolok ukur kinerja tetapi ini seharusnya lebih cepat daripada regex tetapi untuk cuplikan teks kecil tidak akan ada banyak perbedaan.
sumber
Beberapa orang lain telah memposting jawaban. Ada beberapa masalah yang jelas, seperti itu kembali
false
ketika Regex berlalu, dan operator^
dan$
menunjukkan awal / akhir, sedangkan pertanyaannya mencari memiliki spasi (ada), dan bukan: hanya berisi spasi (yang diperiksa regex).Selain itu, masalahnya hanyalah salah ketik.
Ubah ini ...
Untuk ini...
Saat menggunakan regex dalam
RegExp()
, Anda harus melakukan dua hal berikut .../
tanda kurung mulai dan akhir .\\s
di tempat\s
, dll.Demo kerja penuh dari kode sumber ....
sumber