login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Code omzetten (Opgelost)

Offline WouterJ - 17/06/2010 20:26
Avatar van WouterJHTML gevorderde Hallo sitemasters,

Ik wil nu dat er een stuk code wordt omgezet.
Dus dat a = n, b = o, enz.

Ik heb dat geprobeerd met:
  1. if (document.omzetten.script.value == "a"){
  2. document.omzetten.unscript.value = "n";
  3. }
  4. if (..........


Alleen dit werkt niet 

Kan iemand mij een beetje opgang helpen, zeggen hoe ik het wel moet doen? Want dit maak ik om te oefenen met js dus wil het wel zelf maken. 

11 antwoorden

Gesponsorde links
Offline ProjectWebdesign - 17/06/2010 20:36
Avatar van ProjectWebdesign Lid Wat wil je precies doen?
Wil je een tekst scannen en daar bijvoorbeeld alle a's veranderen in n?
Offline WouterJ - 17/06/2010 20:46
Avatar van WouterJ HTML gevorderde
ProjectWebdesign schreef:
Wat wil je precies doen?
Wil je een tekst scannen en daar bijvoorbeeld alle a's veranderen in n?

Zoiets.
Ik wil dit:

Je typ in een textvak bijv. dit:
Aan
Dan wordt dat in een textvak eronder zo neergezet:
Nna

Dus zegmaar via deze code:
A | B | C | D | E | F | G | H | I | J | K | L | M
---------------------------------------------
N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Offline Martijn - 17/06/2010 21:04
Avatar van Martijn Crew PHP een functie maken?
  1. functie vageTekst(string){
  2. string = string.replace( "a", "n");
  3. string = string.replace( "b", "m");
  4. //etc
  5. }

en dan bij de onkeyup van je typvakje die functie aanroepen. Moet je nog wel even bij zetten dat t naar de juiste plek gaat
Offline ProjectWebdesign - 17/06/2010 21:22
Avatar van ProjectWebdesign Lid Ik ben even gaan uitproberen en ik weet niet of ik het omslachtig heb gedaan, maar het werkt bij mij.

  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function replaceChars(text)
  5. {
  6. var replaceTo = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M');
  7. var replaceWith = new Array('N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
  8.  
  9. var string = text.split("");
  10.  
  11. for (var c = 0; c < string.length; c++)
  12. {
  13. if (in_array(string[c].toUpperCase(), replaceTo))
  14. {
  15. for (var i = 0; i < replaceTo.length; i++)
  16. {
  17. string[c] = string[c].replace(replaceTo[i], replaceWith[i]);
  18. string[c] = string[c].replace(replaceTo[i].toLowerCase(), replaceWith[i].toLowerCase());
  19. }
  20. }
  21. else if (in_array(string[c].toUpperCase(), replaceWith))
  22. {
  23. for (var i = 0; i < replaceTo.length; i++)
  24. {
  25. string[c] = string[c].replace(replaceWith[i], replaceTo[i]);
  26. string[c] = string[c].replace(replaceWith[i].toLowerCase(), replaceTo[i].toLowerCase());
  27. }
  28. }
  29. }
  30. return string.join("");
  31. }
  32.  
  33. function in_array(needed, array)
  34. {
  35. for (key in array)
  36. {
  37. if (array[key] == needed)
  38. {
  39. return true;
  40. }
  41. }
  42. }
  43. </script>
  44. </head>
  45. <body>
  46. <script type="text/javascript">
  47. document.write(replaceChars("Aan"));
  48. </script>
  49. </body>
  50. </html>
Bedankt door: UpLink, WouterJ
Offline WouterJ - 17/06/2010 22:25
Avatar van WouterJ HTML gevorderde
Martijn schreef:
een functie maken?
[..code..]
en dan bij de onkeyup van je typvakje die functie aanroepen. Moet je nog wel even bij zetten dat t naar de juiste plek gaat

Bedankt voor de code. Alleen werkt dit maar 1 keer..
Als ik bijv. ab intyp komt er nu ao uit. Alleen b wordt omgezet tot o en niet a tot n.
Hoe moet dat nu verder?
Mijn code:Plaatscode: 139613

@ProjectWebdesign, bedankt voor het vele werk. Maar ik wil dit zelf leren dus vogel ik dit liever zelf uit.
Offline Jelmerholland - 18/06/2010 15:55
Avatar van Jelmerholland PHP beginner Je kan altijd kijken naar functies die Pw gebruikt. zoals split op regel 9 van zijn code 
Offline WouterJ - 18/06/2010 17:03
Avatar van WouterJ HTML gevorderde Ahh, nu zie ik het.

Kunnen jullie misschien die code uitleggen, zodat ik het helemaal snap. (Ik ben hier immers om te helpen)
Offline ProjectWebdesign - 18/06/2010 19:19
Avatar van ProjectWebdesign Lid Ik heb in de code commentaar geplaatst. Ik leg dus alles even uit.

  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function replaceChars(text)
  5. {
  6. /* De 2 arrays defineren om later hiermee letters te vervangen. */
  7. var replaceTo = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M');
  8. var replaceWith = new Array('N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
  9.  
  10. /*
  11. De tekst die je meegeeft aan de functie splitsen op niks. Dus elke letter wordt apart gezet.
  12. Voorbeeld: 'Aan' ==> Array('A','a','n');
  13. */
  14. var string = text.split("");
  15.  
  16. /* Nu gaan welke elke letter controleren uit het woord Aan */
  17. for (var c = 0; c < string.length; c++)
  18. {
  19. /* Eerst kijken we of de letter voorkomt uit het eerste rijtje (A t/m M) */
  20. if (in_array(string[c].toUpperCase(), replaceTo))
  21. {
  22. /*
  23. De letter komt voor in het rijtje, dan gaan we kijken welke letter het precies is.
  24. We elke letter uit de array replaceTo langs om te kijken welke het is.
  25. */
  26. for (var i = 0; i < replaceTo.length; i++)
  27. {
  28. /*
  29. string is de Array met de letters van het woord 'Aan'.
  30. Omdat het een array is, heeft elke letter zijn eigen index waarde.
  31. Door de for loop op regel 17 veranderd c continu. Dus we lopen alle indexen af van string.
  32. Dus string[0] geeft A.
  33.  
  34. A komt overeen met A in replaceTo en die wordt vervangen door de zelfde index van replaceWith
  35. */
  36. string[c] = string[c].replace(replaceTo[i], replaceWith[i]);
  37. /* Om ook de kleine letters te controleren maken we van de letters een kleine letter. */
  38. string[c] = string[c].replace(replaceTo[i].toLowerCase(), replaceWith[i].toLowerCase());
  39. }
  40. }
  41. /* Hier doen we hetzelfde als hierboven, alleen dan controleren we op replaceWith en vervangen we dat door replaceTo */
  42. else if (in_array(string[c].toUpperCase(), replaceWith))
  43. {
  44. for (var i = 0; i < replaceTo.length; i++)
  45. {
  46. string[c] = string[c].replace(replaceWith[i], replaceTo[i]);
  47. string[c] = string[c].replace(replaceWith[i].toLowerCase(), replaceTo[i].toLowerCase());
  48. }
  49. }
  50. }
  51. /* Nu we elke letter hebben vervangen voegen we alles weer samen tot 1 zin. */
  52. return string.join("");
  53. }
  54. /* Deze functie gebruiken we om een letter te vinden in een array. */
  55. function in_array(needed, array)
  56. {
  57. /*
  58. We lopen de array langs die je meegeeft en als de waarde needed overeenkomt met de index waarde van de array,
  59. krijg je een true terug. (De letter is dus gevonden)
  60. */
  61. for (key in array)
  62. {
  63. if (array[key] == needed)
  64. {
  65. return true;
  66. }
  67. }
  68. }
  69. </script>
  70. </head>
  71. <body>
  72. <script type="text/javascript">
  73. document.write(replaceChars("Aan"));
  74. </script>
  75. </body>
  76. </html>
Bedankt door: WouterJ
Offline WouterJ - 19/06/2010 10:58 (laatste wijziging 19/06/2010 22:46)
Avatar van WouterJ HTML gevorderde @pW, heel erg bedankt. Nu snap ik het een beetje en ga ik hem uitwerken.

@Moderators, dit topic niet als opgelost vinken. Want later zal wel tegen een probleem aanlopen met het namaken.

[...EDIT...]
De eerste vraag al:
Hoe kun je 2 methodes aan 1 variabele geven?
Ik wil namelijk aan de var text = ; 2 keer replace(); gebruiken.
Offline Koen - 20/06/2010 10:40
Avatar van Koen PHP expert Je kan ook gewoon de charCode met één verhogen, lijkt me iets minder werk.
Offline WouterJ - 20/06/2010 12:37
Avatar van WouterJ HTML gevorderde
Koen schreef:
Je kan ook gewoon de charCode met één verhogen, lijkt me iets minder werk.

Dat zou ik inderdaad kunnen doen, alleen snap ik daar nog niks van. En ik wil niet zomaar een code typen of copy/pasten zonder dat ik weet hoe het werkt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.246s