web-dev-qa-db-fra.com

Supprimer le retour chariot et l'espace d'une chaîne

Je veux supprimer le retour à la ligne et l'espace d'une chaîne Par exemple:

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

Je veux avoir comme résultat:

t = "aaa bbb ccc"

J'utilise celui-ci, il supprime le retour chariot mais j'ai encore des espaces

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

S'il vous plaît, aidez-moi.

19
Guest Guest

Essayer:

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

Ensuite:

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

Le 2ème doit se débarrasser de plus d'un espace

34
Andrew Newby

Ou vous pouvez utiliser une seule expression rationnelle:

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

De plus, vous devrez appeler .trim() en raison des espaces de début et de fin. Donc le complet sera:

t = t.replace(/\s+/g, ' ').trim();
20
Ulugbek Umirov

Je voudrais suggerer

  • pour effacer le retour chariot => espace
  • pour remplacer plusieurs espaces par un seul
  • pour effacer les espaces de début et de fin (identique à jQuery trim ())

Ainsi

t.replace(/[\n\r]+/g, ' ').replace(/\s{2,}/g,' ').replace(/^\s+|\s+$/,'') 
2
Open SEO

Fantastique! merci d'avoir partagé Ulugbek. J'ai utilisé le code suivant pour avoir des valeurs séparées par une virgule à partir d'un lecteur de code à barres. Chaque fois que vous appuyez sur le bouton du lecteur de codes à barres, les retours à la ligne et les espaces sont convertis en virgules.

Script Java:

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

Balisage:

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