Ganti semua karakter spasi

141

Saya ingin mengganti semua kemunculan karakter spasi (spasi, tab, baris baru) di JavaScript.
Bagaimana melakukannya?

Saya mencoba:

str.replace(/ /gi, "X")
Sourav
sumber
1
regular-expressions.info
Felix Kling
1
Apa itu "X" dan mengapa?
Muhammad Shahzad
Bagaimana dengan string.replace ('', "X");
Ramesh Rajendran

Jawaban:

321

Kamu ingin \s

Cocok dengan satu karakter spasi, termasuk spasi, tab, umpan formulir, umpan baris.

Setara dengan

[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

di Firefox dan [ \f\n\r\t\v]di IE .


str = str.replace(/\s/g, "X");
Alex K.
sumber
42
1 untuk mengingat untuk menunjukkan bahwa replacefungsi tersebut tidak berubah str, jadi Anda harus menetapkannya kembali.
FishBasketGordo
1
Dalam sebuah fungsi, Anda dapat mengembalikan str.replace, jadi Anda tidak perlu menetapkan dalam cakupan itu.
Steve K
Ingat untuk R untuk digunakan perl = TRUE, sepertigsub(pattern = "[\\s]+", ..., perl = TRUE)
MS Berends
33

\sadalah karakter meta yang menutupi semua ruang kosong. Anda tidak perlu membuatnya peka huruf besar kecil - spasi tidak memiliki huruf besar-kecil.

str.replace(/\s/g, "X")
Quentin
sumber
21

Kami juga dapat menggunakan ini jika kami ingin mengubah semua beberapa spasi kosong yang digabungkan dengan satu karakter:

str.replace(/\s+/g,'X');

Lihat aksinya di sini: https://regex101.com/r/d9d53G/1

Penjelasan

/ \s+/ g

  • \s+cocok dengan semua karakter spasi (sama dengan [\r\n\t\f\v ])
  • + Quantifier - Cocok antara satu dan waktu tidak terbatas, sebanyak mungkin, memberikan kembali sesuai kebutuhan (serakah)

  • Bendera pola global
    • g pengubah: g lobal. Semua pertandingan (jangan kembali setelah pertandingan pertama)
Milos Stankovic
sumber
8

Sudahkah Anda mencoba \s?

str.replace(/\s/g, "X");
Michael Berkowski
sumber
4

Jika Anda menggunakan

str.replace(/\s/g, "");

itu menggantikan semua spasi putih. Sebagai contoh:

var str = "hello my world";
str.replace(/\s/g, "") //the result will be "hellomyworld"
GigiProve
sumber
4

Coba ini:

str.replace(/\s/g, "X")
Headshota
sumber
Itu tidak berhasil. \s\n\tkecocokan: sembarang karakter spasi, diikuti dengan baris baru, diikuti oleh tab.
Daniel Cassidy
3

Bukan / gi tapi / g

var fname = "My Family File.jpg"
fname = fname.replace(/ /g,"_");
console.log(fname);

memberi

"My_Family_File.jpg"
jimver04
sumber
1

Sebenarnya ini telah berhasil tetapi

coba saja ini.

ambil nilai / \ s / g menjadi variabel string seperti

String a = /\s/g;

str = str.replaceAll(a,"X");
Siten
sumber
mana Anda mendapatkan replaceAlldari?
Ionel Lupu
1

Anda bisa menggunakan fungsinya trim

let str = ' Hello World ';

alert (str.trim());

Semua ruang depan dan belakang di sekitar Hello World akan dihapus.

Anseam
sumber