2016-07-08 7 views
0

Hier ist mein Quellcode. Ich habe eine Anweisung in angularjs geschrieben, um Leerzeichen zu eliminieren. Es funktioniert perfekt für Leerzeichen zwischen Wörtern, erlaubt aber immer noch Leerzeichen am Anfang.Ich brauche einen regulären Ausdruck, um Leerraum am Anfang zu entfernen und es sollten Leerzeichen zwischen zwei Wörtern

function customValidation() { 

    return { 
    require: 'ngModel', 
    link: function(scope, element, attrs, modelCtrl) { 

     modelCtrl.$parsers.push(function (inputValue) { 

     var transformedInput = inputValue.toLowerCase().replace(/ /g,''); 

     if (transformedInput!== inputValue) { 
      modelCtrl.$setViewValue(transformedInput); 
      modelCtrl.$render(); 
     }   

     return transformedInput;   
     }); 
    } 
    }; 
} 
+0

Set 'ngTrim' zu' false'. Siehe http://StackOverflow.com/a/32135166/3832970 –

+0

Ich habe bereits den Wert ngTrim auf false gesetzt ..

+0

Ich vermute, Sie wollen nur '.replace (/ \ s +/g, '');' –

Antwort

1

Wenn Sie Leerzeichen zu entfernen, gerade aus dem Anfang

inputValue.toLowerCase().replace(/^\s+/, '').replace(/\s+/g, ' '); 
+0

Hallo Martin, danke, dein Beispiel funktioniert für mich aber mein Fall sollte es keine Leerzeichen am Anfang zulassen und es sollte nur ein Leerzeichen nach einem Wort stehen. aber die regelmäßige Äußerung, die Sie gegeben haben, ist, mehr Leerraum nach einem Wort zu akzeptieren. Wenn Sie irgendwelche Ideen haben, mehr Räume nach einem Wort zu löschen, teilen Sie bitte Dank ... –

+0

Im Rahmen des gegenwärtigen Ansatzes ist '/ g' hier völlig bedeutungslos. Wie viele Starts der Zeichenfolge kann es in einer Zeichenfolge geben? Ja, 1. –

+0

@ VarathanSwaminath - sicher, aktualisiert, um mehrere Leerzeichen zwischen Wörtern zu entfernen. Wiktor - guter Punkt! –

Verwandte Themen