2014-04-07 13 views
12

Chcę usunąć powrotu karetki i przestrzeń z ciągiem dla exemple:Usunąć powrotu karetki i przestrzeni z ciągu

var t ="  \n \n aaa \n bbb \n ccc \n"; 

chcę mieć jako skutek:

t = "aaa bbb ccc" 

Używam tego po pierwsze, usuwa powrót karetki, ale nadal mam spacje

t.replace(/[\n\r]/g, ''); 

Proszę, pomóż mi.

+0

dodać \ s do niego: '/ [\ s \ n \ R]/G' –

+0

@vp_arth jaki jest sens dołączanie '\ n' i' \ r', jeśli '\ s' już je dopasowuje? –

+0

Może się mylę ... Pamiętam trochę o liniach startowych i globalnej flagie .. może być o jeden punkt? przepraszam) –

Odpowiedz

23

Spróbuj:

t.replace(/[\n\r]+/g, ''); 

Następnie:

t.replace(/\s{2,10}/g, ' '); 

The 2nd jeden należy pozbyć się z więcej niż 1 miejsca

15

Albo można zrobić za pomocą pojedynczego regex:

t.replace(/\s+/g, ' ') 

Należy również zadzwonić pod numer .trim() ze względu na spacje wiodące i końcowe. Więc pełna będzie:

t = t.replace(/\s+/g, ' ').trim(); 
+0

gdzie znajdziesz wykończenia? –

+1

@vp_arth We wszystkich głównych przeglądarkach i IE> 8. –

+1

+1 za altest edite (usunięta kopalnia) – anubhava

0

Fantastyczne! dziękuję za udostępnienie Ulugbeka. Użyłem następującego kodu, aby oddzielać wartości przecinkami od skanera kodów kreskowych. Za każdym razem, gdy wciśnięty jest przycisk skanera kodów kreskowych, powraca karetka, a spacje są konwertowane na przecinki.

Java Script:

function KeyDownFunction() { 
    var txt = document.getElementById("<%=txtBarcodeList.ClientID %>"); 
    txt.value = txt.value.replace(/\s+/g, ',').trim(); 
} 

Markup:

<asp:TextBox ID="txtBarcodeList" runat="server" TextMode="MultiLine" Columns="100" 
        Rows="6" onKeyDown="KeyDownFunction()"></asp:TextBox> 
1

I sugerowałyby

  • wyczyścić powrotu karetki => przestrzeni
  • zastąpić wielokrotne spacje przez pojedynczy jeden
  • oczyścić przednią i tylną przestrzeń (taki sam jak jQuery przycinania())

Zatem

t.replace(/[\n\r]+/g, ' ').replace(/\s{2,}/g,' ').replace(/^\s+|\s+$/,'') 
Powiązane problemy