Versio

[JQuery] Spaties vervangen

Overzicht Reageren

Wim Eikelboom

Wim Eikelboom

19/12/2009 16:36:00
Quote Anchor link
Beste php-ers,

Ik heb in JQuery een functie gemaakt in de document.ready.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
$('#titleInput').keyup(function() {
    if($("#filename").val() == "" || $("#filename").val() != $(this).val()) {
        str = $("#titleInput").val();
        if($(this).val().indexOf(" ") != -1) {
            alert('Gevonden');
            str = str.replace(" ","-");
        } else {
            alert('NIET Gevonden');
        }
        $("#filename").val(str);
    }
});


De bedoeling is dat hij iedere spatie die in de input van titleInput komt, te vervangen voor een streepje. Echter doet hij nu enkel bij de eerste spatie een streepje en bij de andere spaties niets meer.
Hoe kan ik dit oplossen?
 
PHP hulp

PHP hulp

25/05/2012 01:19:11
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Wim Eikelboom

Wim Eikelboom

21/12/2009 00:27:00
Quote Anchor link
Bump
 
- SanThe -

- SanThe -

21/12/2009 00:32:00
Quote Anchor link
Ik heb geen verstand van jquery, maar het lijkt mij dat je het dan in een loop moet zetten zolang er nog een spatie in zit.
 
Robert Deiman

Robert Deiman

21/12/2009 09:48:00
 
Wim Eikelboom

Wim Eikelboom

21/12/2009 12:39:00
Quote Anchor link
@SanThe, ik heb deze inderdaad geprobeerd in een loop te zetten, maar kreeg steeds errors. Ik ben ook nog niet zo bekend dat ik weet hoe ik dit een een loop kan zetten.

@Robert, Is deze replaceAll functie niet alleen elementen zoals paragraphs etc? Ik zal hem gewoon eens proberen.

Eventuele andere oplossingen/suggesties hoor ik graag:)

Edit:
Helaas de replaceAll krijg ik niet aan het werk
Gewijzigd op 01/01/1970 01:00:00 door Wim Eikelboom
 
Wim Eikelboom

Wim Eikelboom

24/12/2009 15:13:00
Quote Anchor link
BUMP
 
Karl Karl

Karl Karl

24/12/2009 15:15:00
 
Wim Eikelboom

Wim Eikelboom

29/12/2009 22:31:00
Quote Anchor link
Hoi Karl,

Ik heb dat al geprobeerd maar hij pakt enkel de eerste
stel ik voor het woord: "Blaat blaat blaat blaat" in
dan maakt hij er nu van "Blaat-blaat blaat blaat"
terwijl er "Blaat-blaat-blaat-blaat" moet komen te staan:(

Graag reacties
 
Joris van Rijn

Joris van Rijn

29/12/2009 22:39:00
Quote Anchor link
Uitrekenen met match hoeveel erin staan, en daan een forloopje maken. Zo had ik het ooit gedaan, maar ik kan het nu niet meer vinden.

Sorry :']
 
Karl Karl

Karl Karl

29/12/2009 22:43:00
Quote Anchor link
Wim schreef op 29.12.2009 22:31:
Hoi Karl,

Ik heb dat al geprobeerd maar hij pakt enkel de eerste
stel ik voor het woord: "Blaat blaat blaat blaat" in
dan maakt hij er nu van "Blaat-blaat blaat blaat"
terwijl er "Blaat-blaat-blaat-blaat" moet komen te staan:(

Graag reacties

Achja. De mensen hier kunnen vast en zeker wel gokken wat je hebt gemaakt he.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<script>
var blaat = 'test een twee drie';
alert ( blaat + "\n" + blaat.replace(/ /g,"-") + "\n" + blaat.split(' ').join('-'));
</script>

Getest in http://htmledit.squarefree.com/
levert:
test een twee drie
test-een-twee-drie
test-een-twee-drie

``Joris,, schreef op 29.12.2009 22:39:
Uitrekenen met match hoeveel erin staan, en daan een forloopje maken. Zo had ik het ooit gedaan, maar ik kan het nu niet meer vinden.

Sorry :']

Als je al kan matchen, dan kan je ook replacen. Dus dan is zo'n loopje e.d. nogal onzinnig.
Gewijzigd op 01/01/1970 01:00:00 door Karl Karl
 
Harmen

Harmen

29/12/2009 22:44:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
str = str.replace("/ /g","-");


De 'g' staat voor global.
 
Karl Karl

Karl Karl

29/12/2009 22:46:00
Quote Anchor link
Harmen schreef op 29.12.2009 22:44:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
str = str.replace("/ /g","-");


De 'g' staat voor global.

Staat ook op stackoverflow geloof ik. Maar volgens mij doet hij gewoon iets totaal verkeerd. Zie hierboven.
 
Wim Eikelboom

Wim Eikelboom

29/12/2009 22:52:00
Quote Anchor link
ik heb inmiddels de oplossing:)

makkelijkste en wat in IE7, IE8, chrome, mozilla en safari werkte was het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
$('#titleInput').keyup(function() {
    if($("#filename").val() == "" || $("#filename").val() != $(this).val()) {
        str = $("#titleInput").val();
        if($(this).val().indexOf(" ") != -1) {
                    str = str.split(' ').join('-');
        }
        str = str.toLowerCase();
                  $("#filename").val(str);
    }
});


In mijn geval ging het dat bij elke keyup hij de value doorkijkt of er een spatie in zit en deze vervangt voor een streepje.

doormiddel van .split(' ').join('-') draaide hij in elke browser goed

Dank jullie voor jullie medewerking!
 



Overzicht Reageren

Get Adobe Flash player