Toon posts:

[JS] Whitespace uit een string halen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo mensen,

ik ben nu al een tijdje bezig.... ik probeer uit een string alle witruimte te halen. Waaronder dus linefeeds, spaties, tabs, carriage returns en NUL byte's.
Nu kan dit met de String.Replace methode, maar daarin stop je een reguliere expressie, en volgens mij kan je eerder genoemde tekens niet zomaar in een reguliere expressie stoppen. Dus ben ik aan t knoeien geweest met String.FromCharCode, maar dat wil ook niet echt vlotten.... iemand een idee/voorbeeld dat mij verder op weg kan helpen?
Het is dus niet ala trim ofzo, maar echt overal dus ook tussen woorden in.
Dit lijkt wel te werken om line feeds, carriage return, spaties en tabs te verwijderen:
code:
1
str.replace(/\n|\s|\r|\t/g, "")

[ Voor 10% gewijzigd door Verwijderd op 05-12-2006 13:13 ]


Verwijderd

ff google naar: javascript string replace newline en je eerste hit zal je verder helpen

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Kijk eens naar \r, \n, \t & \s in regexps :)

[ Voor 10% gewijzigd door AtleX op 05-12-2006 13:11 ]

Sole survivor of the Chicxulub asteroid impact.


Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 05 december 2006 @ 13:10:
ff google naar: javascript string replace newline en je eerste hit zal je verder helpen
Maar geen NULL byte's en verticale tab's

Verwijderd

Topicstarter
Heb eens even afgekeken van de trim functie in php, ik denk/hoop dat dit dan wel moet werken:
code:
1
document.write(str.replace(/\n|\s|\r|\t|\x0B|\0/g, ""))

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

\s is al equivalent aan [ \f\n\r\t\u00A0\u2028\u2029] en ik zou sowieso een characterclass gebruiken ipv een OR-ed constructie vanwege performance.

Intentionally left blank


Verwijderd

Topicstarter
Wat bedoel je precies met een characterclass? Want ik ben nu ook die whitespace aan t verwijderen puur om performance redenen

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

JavaScript:
1
document.write(str.replace(/[\s\x0B\0]/g, ""))

Zie ook deze cheatsheet.

Sole survivor of the Chicxulub asteroid impact.


Verwijderd

Ik heb niet echt (lees: geen) ervaring met Javascript.. Maar kan je niet een ascii (in php chr(ascii code)) replacen met "niets"?
Zo doe ik het in ieder geval in php.

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

ZktaS:
Javascript kent de functie chr() niet dus, maar meerdere function calls doen lijkt me minder efficiënt dan 1x een regular expression uitvoeren. :)

[ Voor 9% gewijzigd door AtleX op 05-12-2006 14:24 ]

Sole survivor of the Chicxulub asteroid impact.


Verwijderd

Verwijderd schreef op dinsdag 05 december 2006 @ 13:39:
Wat bedoel je precies met een characterclass? Want ik ben nu ook die whitespace aan t verwijderen puur om performance redenen
Hij beoelt met blokhaken, dus /[abc]/ ipv /a|b|c/. De performance die hij bedoelt is van de regexp matcher, niet van hetgeen je met het resultaat gaat doen.

Binnen blokhaken kun je een collectie van ranges en single characters opgeven.
http://www.regular-expressions.info/charclass.html.

Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 05 december 2006 @ 14:11:
[...]

Hij beoelt met blokhaken, dus /[abc]/ ipv /a|b|c/. De performance die hij bedoelt is van de regexp matcher, niet van hetgeen je met het resultaat gaat doen.

Binnen blokhaken kun je een collectie van ranges en single characters opgeven.
http://www.regular-expressions.info/charclass.html.
Elke miliseconde dat je applicatie bezig is is er wel weer 1 ;) Probleem is nu iig opgelost, bedankt mensen _/-\o_
Pagina: 1