[JS] verwijderen uit string

Pagina: 1
Acties:
  • 244 views sinds 30-01-2008
  • Reageer

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Ik wil graag alle voorkomens van een spatie in deze vorm:   uit een string verwijderen m.b.v. javascript, maar niet de spatie " ".
code:
1
2
3
4
5
6
7
8
9
<script>
var string 
  = '&nbsp;&nbsp;&nbsp;dubbele &nbsp;&nbspspatie  + nog meer :P' ;

regexp = new RegExp("&nbsp;", "");

var nieuwe = string.replace(RegExp);
document.write(nieuwe);
</script>

Ik doe het nu zo, maar nu haalt hij niet eens de eerste &nbsp eruit, terwijl ik op verschillende plaatsen heb gelezen dat het zo moet kunnen.

ik heb hier gekeken, en dit geconstrueerd, maar dat werkt ook absoluut niet:
code:
1
var nieuwe = string.replace("(&nbsp;)+", "");

Weet iemand wat ik fout doe?

Ik blijf er iig vrij nuchter onder....


  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

'k heb niet al te vaak met JS gewerkt, dus je moet me niet kwalijk nemen als ik iets foutief uitkraam :)

Maar mijn theorie gaat als volgt:

string.replace () replaced enkel 1x en niet met reguliere expressie, het werkt ongeveer als zijn php tegenhanger str_replace, alleen dan 1x. Dus stel ik heb:

var string = new String ("blablablabla");
string = string.replace ("bla", "hoi"); // returned hoiblablabla

de method werkt dus als volgt: string.replace ("target", "replacement");

Reguliere expressie operatoren werken er dus niet in, maar die heb je ook niet nodig dacht ik zo. Je kan namelijk ook een lus maken die net zo lang doorgaat tot hij geen "target" meer vindt.
Die ziet er dan ongeveer zo uit (losse hand dus kunnen erroren in voorkomen):
code:
1
2
3
while (string.indexOf ("&nbsp;" != -1) {
    string = string.replace ("&nbsp;", "");
}

Verwijderd

In versie 1 gebruik je string.replace(RegExp); en dat is niet goed. Je moet niet het RegExp object, maar een instantie van het RegExp object meegeven, in jouw geval dus regexp.

Verder moet je bij het constructen van die instantie maar één argument meegeven, namelijk de regular expression. De tekst waarmee deze gereplaced moet worden komt in de replace functie:
code:
1
2
regexp = new RegExp('&nbsp;', 'g');
var nieuwe = string.replace(regexp, '');

Mogelijk moet je je regular expression nog de modifier g meegeven, maar dat weet ik bij een replace functie niet zeker.

[edit]
Documentatie even doorgelezen, de g modifier moet er inderdaad bij, voor een globale search & replace functie.

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 17-08 15:34
Bedankt voor de reacties, het werkt nu prima met de methode van cheatah.

Ik blijf er iig vrij nuchter onder....


Verwijderd

Ik heb een soort gelijk probeem
Ik heb een string als onderstaande
result = "
extra:#99CC99; origineel_onderwerp:#66FFFF; origineel_bericht_balk:#99CC66; "

Nu wil ik wanneer 'origineel_bericht_balk' in de string staat deze verwijderen (inclusief hexcode).

Probleem is dat ik alleen 'origineel_bericht_balk' heb en niet de hexcode...
hoe kan ik die nu compleet verwijderen (zonder de rest van de string aan te tasten)?
code:
1
2
3
4
     string = "origineel_bericht_balk : #";
         regexp = new RegExp(string, 'g');
         var nieuw = result.replace(regexp, '');
         thisform.result.value = nieuw;

Ik weet niet hoe ik nu het variabele stukje (hexcode) moet wissen..

snapt u het nog :?

iemand die me in de juiste richting kan schoppen...

Verwijderd

regexp = new RegExp('origineel_bericht_balk\s?:\s?#[0-9a-f]{6}', 'gi');

Standaard regular expressions lijkt me, dus ale je dat zelf wilt kunnen bedenken, dan moet je dit eens doorlezen.
Pagina: 1