2017-06-20 14 views
2

Mein Problem ist einfach, aber ich kann es nicht herausfinden. Ich habe ein einfaches Formular (Textarea), wo Benutzer einen Text eingeben und dieser Text in einer Datenbank gespeichert wird. Das Problem ist - Ich möchte unnötige Leerzeichen entfernen, bevor der Text gespeichert wird. Also habe ich eine einfache JavaScript-Funktion:Javascript - Entfernen von Leerzeichen, die unmittelbar von einem Zeilenumbruch gefolgt werden

str.replace(/\n\s*\n\s*\n/g, '\n'); 

Aber es entfernt nicht die Räume, wenn der Benutzer entsendet einen Text wie:

hello world  \nanother sample   \n test 

(so, wenn der Benutzer fügt einen Raum/Räume nach dem letzten Wort UND dann ein anderes Wort in einer neuen Zeile postet, werden diese Räume nach links (und in der Datenbank als gespeichert):

hello word <br>another sample   <br> test 

usw.

Was ich brauche, ist, dass diese durch eine neue Zeile gefolgt Räume von Javascript entfernt werden, so dass das Ergebnis:

hello word<br>another sample<br>test 
+0

regex ist dein Freund;) – jdmdevdotnet

+0

glauben Sie mir, es ist nicht (ich wünschte, es wäre aber;) – Tom

+0

Ihre reguläre Ausdrücke passt nur Folgen von Leerzeichen, die mindestens 3 Zeilenumbrüche enthalten. Verwende '\ s * \ n'. – Bergi

Antwort

4

müssen Sie Ihren regulären Ausdruck vereinfachen:

const input = 'hello world  \nanother sample   \n test'; 
 
const output = input 
 
    // Remove all whitespace before and after a linebreak 
 
    .replace(/\s*\n\s*/g, '\n'); 
 
console.log(output);

Oder wenn Sie es sehen möchten, wie es in Ihrer Datenbank gespeichert wird:

+0

Perfekt, danke: – Tom

+0

@Tom Froh, ich könnte helfen! –

Verwandte Themen