login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > JavaScript

Code omzetten (Opgelost)

WouterJ – 17/06/2010 20:26
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. 


Pagina:

11 antwoorden

Gesponsorde links
Daisycon - Verdien geld met uw website

ProjectWebdesign – 17/06/2010 20:36
Wat wil je precies doen?
Wil je een tekst scannen en daar bijvoorbeeld alle a's veranderen in n?

WouterJ – 17/06/2010 20:46
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

Martijn – 17/06/2010 21:04
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

ProjectWebdesign – 17/06/2010 21:22
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>


WouterJ – 17/06/2010 22:25
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.

Jelmerholland – 18/06/2010 15:55
Je kan altijd kijken naar functies die Pw gebruikt. zoals split op regel 9 van zijn code 

WouterJ – 18/06/2010 17:03
Ahh, nu zie ik het.

Kunnen jullie misschien die code uitleggen, zodat ik het helemaal snap. (Ik ben hier immers om te helpen)

ProjectWebdesign – 18/06/2010 19:19
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>


WouterJ – 19/06/2010 10:58 (Laatst gewijzigd op 19/06/2010 22:46)
@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.

Koen – 20/06/2010 10:40
Je kan ook gewoon de charCode met één verhogen, lijkt me iets minder werk.

Gesponsorde links


Pagina:

Dit onderwerp is gesloten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.071s