[JS] replace script...

Pagina: 1
Acties:

  • Tjeemp
  • Registratie: Januari 2005
  • Laatst online: 03-01-2015

Tjeemp

BEER N TEA

Topicstarter
ik wil het volgende doen... ik wil een preview scriptje maken dat laat zien hoe iets eruit komt te zien... het gaat om precies te zijn om de definities van date() in php...

op de volgende wijze wil ik die dus vervangen:
PHP:
1
2
3
4
5
6
echo "  s = s.replace(\"a\", \"" . date("a") . "\");\n";
echo "  s = s.replace(\"F\", \"" . date("F") . "\");\n";
echo "  s = s.replace(\"A\", \"" . date("A") . "\");\n";
echo "  s = s.replace(\"i\", \"" . date("i") . "\");\n";
echo "  s = s.replace(\"B\", \"" . date("B") . "\");\n";
echo "  s = s.replace(\"d\", \"" . date("d") . "\");\n";


nu is het probleem dat hij natuurlijk op een gegeven moment ook de letters gaat veranderen die in woorden voorkomen die hij bij een vorige replace heeft gegenereerd.

heeft iemand een idee hoe ik dit kan verhelpen? elke string moet werken, net als de date() functie in php, dus zo date("d m Y"); dat moet hij dan vervangen door 28 03 2006, dit is een voorbeeld dat wel zou werken, maar date("l F jS Y"); bijvoorbeeld niet...

www.timovanderzanden.nl | Beer 'n' Tea


  • mocean
  • Registratie: November 2000
  • Laatst online: 15-01 14:31
je kan de string uit elkaar trekken naar een array, met elke char als 1 element. Loopen over de array voor de replaces, en dan weer een string ervan maken!

Koop of verkoop je webshop: ecquisition.com


  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 19-10-2025
je kan dmv JS toch checken of de tekens die je in de string zet 'mogen' zegmaar? of begrijp ik je nu verkeerd?

This message was sent on 100% recyclable electrons.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type="text/javascript">

var dateformats = [];
<?php

//-- date-formatting array maken voor JS
echo "dateformats['a'] = '", date('a'), "';\n";
echo "dateformats['F'] = '", date('F'), "';\n";
echo "dateformats['A'] = '", date('A'), "';\n";
echo "dateformats['i'] = '", date('i'), "';\n";
echo "dateformats['B'] = '", date('B'), "';\n";
echo "dateformats['d'] = '", date('d'), "';\n";


?>

var s = 'a F A i B d';

s = s.replace(/([aFAiBd])/g, function($0,$1) { return dateformats[$1]; });
alert(s);

</script>

zoiets? ;)

Intentionally left blank


  • Tjeemp
  • Registratie: Januari 2005
  • Laatst online: 03-01-2015

Tjeemp

BEER N TEA

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
echo "<SCRIPT LANGUAGE=\"JavaScript\">\n";

echo "function preview(s) {\n";

echo "  var part = new Array(s.length);\n";
echo "  var repl = new Array(s.length);\n";
echo "  for(i = 0; i < s.length; i++) {\n";
echo "      part[i] = s.substr(i, 1);\n";
echo "      repl[i] = part[i].replace(\"a\", \"" . date("a") . "\");\n";
echo "      repl[i] = part[i].replace(\"F\", \"" . date("F") . "\");\n";
echo "      repl[i] = part[i].replace(\"A\", \"" . date("A") . "\");\n";
echo "      repl[i] = part[i].replace(\"i\", \"" . date("i") . "\");\n";
echo "      repl[i] = part[i].replace(\"B\", \"" . date("B") . "\");\n";
echo "      repl[i] = part[i].replace(\"d\", \"" . date("d") . "\");\n";
echo "      repl[i] = part[i].replace(\"D\", \"" . date("D") . "\");\n";
echo "      repl[i] = part[i].replace(\"g\", \"" . date("g") . "\");\n";
echo "      repl[i] = part[i].replace(\"G\", \"" . date("G") . "\");\n";
echo "      repl[i] = part[i].replace(\"h\", \"" . date("h") . "\");\n";
echo "      repl[i] = part[i].replace(\"H\", \"" . date("H") . "\");\n";
echo "      repl[i] = part[i].replace(\"I\", \"" . date("I") . "\");\n";
echo "      repl[i] = part[i].replace(\"j\", \"" . date("j") . "\");\n";
echo "      repl[i] = part[i].replace(\"l\", \"" . date("l") . "\");\n";
echo "      repl[i] = part[i].replace(\"L\", \"" . date("L") . "\");\n";
echo "      repl[i] = part[i].replace(\"m\", \"" . date("m") . "\");\n";
echo "      repl[i] = part[i].replace(\"M\", \"" . date("M") . "\");\n";
echo "      repl[i] = part[i].replace(\"N\", \"" . date("N") . "\");\n";
echo "      repl[i] = part[i].replace(\"n\", \"" . date("n") . "\");\n";
echo "      repl[i] = part[i].replace(\"O\", \"" . date("O") . "\");\n";
echo "      repl[i] = part[i].replace(\"r\", \"" . date("r") . "\");\n";
echo "      repl[i] = part[i].replace(\"s\", \"" . date("s") . "\");\n";
echo "      repl[i] = part[i].replace(\"S\", \"" . date("S") . "\");\n";
echo "      repl[i] = part[i].replace(\"t\", \"" . date("t") . "\");\n";
echo "      repl[i] = part[i].replace(\"T\", \"" . date("T") . "\");\n";
echo "      repl[i] = part[i].replace(\"U\", \"" . date("U") . "\");\n";
echo "      repl[i] = part[i].replace(\"w\", \"" . date("w") . "\");\n";
echo "      repl[i] = part[i].replace(\"W\", \"" . date("W") . "\");\n";
echo "      repl[i] = part[i].replace(\"Y\", \"" . date("Y") . "\");\n";
echo "      repl[i] = part[i].replace(\"y\", \"" . date("y") . "\");\n";
echo "      repl[i] = part[i].replace(\"z\", \"" . date("z") . "\");\n";
echo "      repl[i] = part[i].replace(\"Z\", \"" . date("Z") . "\");\n";
echo "  }\n";
echo "  document.write(repl.join(\"\"));\n";
echo "}\n";

echo "</SCRIPT>\n";


ik heb het nu op deze manier gedaan, alles is goed, alleen pakt ie de replacement niet =S er wordt netjes een array van gemaakt... maar de array 'repl' is exact hetzelfde als array 'part'...

www.timovanderzanden.nl | Beer 'n' Tea


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Ga nou niet tig replaces doen, maar vat het samen in 1 replace met een callback-functie en een hashtable. De hele truuk is om je source-string maar 1x door te lopen - dat is sneller en doet wel wat je wilt itt wat je nu probeerd te doen.
btw:
JavaScript:
1
2
3
var s = 'aaaaa';
s = s.replace('a', 'b');
alert(s); //baaaa

funny nietwaar? ;)

[ Voor 4% gewijzigd door crisp op 29-03-2006 01:17 ]

Intentionally left blank


  • Tjeemp
  • Registratie: Januari 2005
  • Laatst online: 03-01-2015

Tjeemp

BEER N TEA

Topicstarter
heb toch maar jouw optie gebruikt :D

en hij werkt goed met de juiste eventhandler

www.timovanderzanden.nl | Beer 'n' Tea

Pagina: 1