[JQuery] Spaties vervangen
Beste php-ers,
Ik heb in JQuery een functie gemaakt in de document.ready.
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?
Ik heb in JQuery een functie gemaakt in de document.ready.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
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);
}
});
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?
Gesponsorde koppelingen:
Bump
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.
@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:)
@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
BUMP
Zie bijvoorbeeld http://stackoverflow.com/questions/441018/replacing-spaces-with-underscores-in-javascript
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
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
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 :']
Sorry :']
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
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)
1
2
3
4
2
3
4
<script>
var blaat = 'test een twee drie';
alert ( blaat + "\n" + blaat.replace(/ /g,"-") + "\n" + blaat.split(' ').join('-'));
</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 :']
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 schreef op 29.12.2009 22:44:
Staat ook op stackoverflow geloof ik. Maar volgens mij doet hij gewoon iets totaal verkeerd. Zie hierboven.
ik heb inmiddels de oplossing:)
makkelijkste en wat in IE7, IE8, chrome, mozilla en safari werkte was het volgende:
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!
makkelijkste en wat in IE7, IE8, chrome, mozilla en safari werkte was het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
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);
}
});
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!



