Verwijder spaties in een string in javascript

Ik heb deze vraagover javascript trim gelezen , met een regex-antwoord.

Vervolgens verwacht ik dat trim de innerlijkeruimte tussen Hello en World verwijdert.

function myFunction() {
    alert("Hello World ".trim());
}

BEWERKT

Waarom had ik dat verwacht!?

Onzin! Uiteraard verwijdert trimmen geen binnenruimtes!, alleen voor- en achterliggende spaties, zo werkt trimmen, dan was dit een heel verkeerde vraag, mijn excuses.


Antwoord 1, autoriteit 100%

Gebruik voor het verwijderen van spatietekens

"hello world".replace(/\s/g, "");

gebruik voor alle witruimte de suggestie van Rocket in de opmerkingen hieronder!


Antwoord 2, autoriteit 4%

U kunt gebruiken

"Hello World ".replace(/\s+/g, '');

trim()verwijdert alleen spaties op de tekenreeks (eerste en laatste in de reeks).
In dit geval is deze regExp sneller omdat je een of meer spaties tegelijk kunt verwijderen.

Als u de vervangende lege tekenreeks wijzigt in ‘$’, wordt het verschil veel duidelijker:

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // #Q#W#E#R#TY#

Prestatievergelijking – /\s+/gis sneller. Zie hier: http://jsperf.com/s-vs-s


Antwoord 3, autoriteit 3%

Waarschijnlijk omdat je bent vergeten de oplossing te implementeren in het geaccepteerde antwoord. Dat is de code die trim()laat werken.

bijwerken

Dit antwoord is alleen van toepassing op oudere browsers. Nieuwere browsers ondersteunen blijkbaar standaard trim().


Antwoord 4

U kunt Strings gebruiken replacemethode met een reguliere expressie.

"Hello World ".replace(/ /g, "");

De methode Replace() retourneert een nieuwe tekenreeks met enkele of alle overeenkomsten van
een patroon vervangen door een vervanging. Het patroon kan een string of a . zijn
RegExp

RegExp

  • / /– Reguliere expressie die overeenkomt met spaties

  • g– Wereldwijde vlag; vind alle wedstrijden in plaats van te stoppen na de eerste wedstrijd


Antwoord 5

Je zou een recursieve oplossing kunnen gebruiken:

function removeWhitespaces(string, i = 0, res = "") {
  if (i >= string.length)
    return res
  else
  if (string[i] == " ")
    return removeWhitespaces(string, i + 1, res)
  else
    return removeWhitespaces(string, i + 1, res += string[i])
}
console.log(removeWhitespaces(" Hello World,   how is it going ? "))

Other episodes