Toon posts:

Whitespaces in javascript

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik ben met een website bezig en wil een aantal dingen in javascript/jquery doen. Nou moet een gebruiker een textarea kunnen vullen. Dit werkt allemaal prima en wordt door mijn systeem opgenomen. Ook kan ik de newlines allemaal registreren. Maar ik loop in de problemen met multiple whitespaces. Een voorbeeld zou kunnen zijn dat een gebruiker

asdf_______________asdf

invult.. Waarbij de underlines spaties zijn. Zo te zien werkt het overigens ook niet op tweakers =).

Overigens werkt dit niet: str.replace(' ', '& nbsp;');

Iemand enig idee hoe ik dit kan oplossen, want ik kan gebruikers niet vragen om voor elke spatie & nbsp; in te vullen.

Acties:
  • 0 Henk 'm!

  • DaRKie
  • Registratie: December 2001
  • Laatst online: 16-09 16:18
Meerdere spaties in een stuk tekst worden in html altijd herleid naar 1 spatie.
Wil je de meerdere spaties zien, kan je dit het eenvoudigste oplossen door deze tekst te omsluiten door de <PRE> tag.

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 13:10

MueR

Admin Tweakers Discord

is niet lief

Een pre tag lijkt me helemaal niet nodig. Je kan dat beter met CSS doen: whitespace:pre-wrap;

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Of je gebruikt &nbsp;
DaRKie schreef op woensdag 15 februari 2012 @ 10:19:
Meerdere spaties in een stuk tekst worden in html altijd herleid naar 1 spatie.
Define 'herleid' ;) Voor een wat genuanceerder antwoord pak je gewoon even de specs erbij :Y)
Kort door de bocht: whitespace heeft in HTML, op een single-space na, geen betekenis.

[ Voor 108% gewijzigd door RobIII op 15-02-2012 10:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Hij zegt dat dat niet werkt.

Acties:
  • 0 Henk 'm!

  • jopitan
  • Registratie: Juni 2007
  • Laatst online: 06-08 11:38

jopitan

It&#039;s just a fact

GlowMouse schreef op woensdag 15 februari 2012 @ 10:26:
[...]

Hij zegt dat dat niet werkt.
Hij heeft ook een spatie staan tussen de & en de nbsp; in de str.replace.

CPU: i7-5820K @ 4.4GHz | CCooler: NZXT Kraken X61 | MEM: Kingston 16GB @ 2666MHz | GPU: RX470 | PSU: OCZ 1250W | SSD: Samsung Pro 500GB


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
jopitan schreef op woensdag 15 februari 2012 @ 10:27:
[...]


Hij heeft ook een spatie staan tussen de & en de nbsp; in de str.replace.
Dat heeft 'ie gedaan omdat 't forum anders de &nbsp; niet weergeeft ;) Daarvoor zul je de & moeten escapen als &amp; dus effectief type je: &amp;nbsp; ;)
GlowMouse schreef op woensdag 15 februari 2012 @ 10:26:
[...]

Hij zegt dat dat niet werkt.
Klopt, my bad, daar had ik overheen gelezen.

[ Voor 26% gewijzigd door RobIII op 15-02-2012 10:29 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jopitan schreef op woensdag 15 februari 2012 @ 10:27:
[...]


Hij heeft ook een spatie staan tussen de & en de nbsp; in de str.replace.
ja duh.. als ik dat niet zou doen dan zouden jullie gewoon een spatie zien.. en zou je krijgen str.replace(' ',' ').

de <pre> html tag werkt in ieder geval prima

Acties:
  • 0 Henk 'm!

  • PeterSelie
  • Registratie: December 2002
  • Laatst online: 18-09 14:19
Hoezo zou de replace functie niet werken?

http://jsfiddle.net/56VKQ/

Voeg daar maar eens 'test test' in de textarea in. Overigens is het gebruik van de <pre> tag een beetje overkill hier, zoals hierboven aangegeven voldoet whitespace: pre-wrap ook prima. Afhankelijk van de opzet en het gebruik van de betreffende string heb je javascript hier vermoedelijk niet eens nodig en voldoet enkel de CSS oplossing ook.

[ Voor 25% gewijzigd door PeterSelie op 15-02-2012 10:35 ]


Acties:
  • 0 Henk 'm!

  • gvdh
  • Registratie: December 2009
  • Laatst online: 12:56
Verwijderd schreef op woensdag 15 februari 2012 @ 10:15:

Overigens werkt dit niet: str.replace(' ', '& nbsp;');
Je moet dan ook
JavaScript:
1
str = str.replace(' ', '&nbsp;');
doen.
Maar dan vervang je wel echt álle spaties, en niet alleen als er meerdere achter elkaar staan.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik zou het niet eens met JS doen; dan is je weergave alsnog gaar voor browsers waar JS uitgeschakeld is. Ik zou voor de CSS oplossing gaan.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • PeterSelie
  • Registratie: December 2002
  • Laatst online: 18-09 14:19
gvdh schreef op woensdag 15 februari 2012 @ 10:32:
[...]


Je moet dan ook
JavaScript:
1
str = str.replace(' ', '&nbsp;');
doen.
Maar dan vervang je wel echt álle spaties, en niet alleen als er meerdere achter elkaar staan.
Zie mijn JSFiddle. In jouw voorbeeld vervang je maar een enkele spatie, aangezien de .replace functie zonder de /g/ modifier enkel de eerste spatie vervangt.
GlowMouse schreef op woensdag 15 februari 2012 @ 10:26:
[...]

Hij zegt dat dat niet werkt.
RobIII schreef op woensdag 15 februari 2012 @ 10:28:
[...]

Klopt, my bad, daar had ik overheen gelezen.
De vraag is natuurlijk waarom het / wat er niet werkt. Een .replace vervangt enkel de eerste occurrence. Dan 'werkt' het inderdaad niet, niet zoals verwacht in ieder geval. Een /g/ modifier in de replace geeft wel het gewenste resultaat.

[ Voor 38% gewijzigd door PeterSelie op 15-02-2012 10:36 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
SoaDmaggot schreef op woensdag 15 februari 2012 @ 10:34:
[...]

Zie mijn JSFiddle. In jouw voorbeeld vervang je maar een enkele spatie, aangezien de .replace functie zonder de /g/ modifier enkel de eerste spatie vervangt.
Die alert is leuk, en nu weer de waarde terug in de textbox: http://jsfiddle.net/56VKQ/1/ Ganiegoenie he? ;) :P As said: gewoon CSS gebruiken.

[ Voor 8% gewijzigd door RobIII op 15-02-2012 10:38 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • PeterSelie
  • Registratie: December 2002
  • Laatst online: 18-09 14:19
RobIII schreef op woensdag 15 februari 2012 @ 10:35:
[...]

Die alert is leuk, en nu weer de waarde terug in de textbox: http://jsfiddle.net/56VKQ/1/ Ganiegoenie he? ;) :P
Terug in de textbox niet, nee. Ik kan echter nergens uit de SP herleiden dat dit het doel was? Ik geef enkel een oplossing op 'het werkt niet'. Als je de string vervolgens ergens in je pagina weer wilt geven is het wel een oplossing voor het probleem dat de topic starter aangeeft. Of het de voorkeur geniet boven de CSS oplossing is een tweede en hangt af van het doel van de input.

In het geval dat het weergegeven moet worden in de textarea zal je er een extra wrapper omheen moeten zetten die de boel vervolgens weer terugzet naar whitespaces.
Klopt. Ik geef dan ook nergens aan dat dit de meest gewenste oplossing is. Dit is enkel een reactie op 'het werkt niet'. ;)

Magoed, de aangedragen oplossingen lijken me voldoende.

[ Voor 19% gewijzigd door PeterSelie op 15-02-2012 10:42 ]

Pagina: 1