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
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.
<html>
<head>
<script type="text/javascript">
function replaceChars(text)
{
/* De 2 arrays defineren om later hiermee letters te vervangen. */
var replaceTo = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M');
var replaceWith = new Array('N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
/*
De tekst die je meegeeft aan de functie splitsen op niks. Dus elke letter wordt apart gezet.
Voorbeeld: 'Aan' ==> Array('A','a','n');
*/
var string = text.split("");
/* Nu gaan welke elke letter controleren uit het woord Aan */
for (var c = 0; c < string.length; c++)
{
/* Eerst kijken we of de letter voorkomt uit het eerste rijtje (A t/m M) */
if (in_array(string[c].toUpperCase(), replaceTo))
{
/*
De letter komt voor in het rijtje, dan gaan we kijken welke letter het precies is.
We elke letter uit de array replaceTo langs om te kijken welke het is.
*/
for (var i = 0; i < replaceTo.length; i++)
{
/*
string is de Array met de letters van het woord 'Aan'.
Omdat het een array is, heeft elke letter zijn eigen index waarde.
Door de for loop op regel 17 veranderd c continu. Dus we lopen alle indexen af van string.
Dus string[0] geeft A.
A komt overeen met A in replaceTo en die wordt vervangen door de zelfde index van replaceWith
*/
string[c] = string[c].replace(replaceTo[i], replaceWith[i]);
/* Om ook de kleine letters te controleren maken we van de letters een kleine letter. */
string[c] = string[c].replace(replaceTo[i].toLowerCase(), replaceWith[i].toLowerCase());
}
}
/* Hier doen we hetzelfde als hierboven, alleen dan controleren we op replaceWith en vervangen we dat door replaceTo */
else if (in_array(string[c].toUpperCase(), replaceWith))
{
for (var i = 0; i < replaceTo.length; i++)
{
string[c] = string[c].replace(replaceWith[i], replaceTo[i]);
string[c] = string[c].replace(replaceWith[i].toLowerCase(), replaceTo[i].toLowerCase());
}
}
}
/* Nu we elke letter hebben vervangen voegen we alles weer samen tot 1 zin. */
return string.join("");
}
/* Deze functie gebruiken we om een letter te vinden in een array. */
function in_array(needed, array)
{
/*
We lopen de array langs die je meegeeft en als de waarde needed overeenkomt met de index waarde van de array,
krijg je een true terug. (De letter is dus gevonden)
*/
for (key in array)
{
if (array[key] == needed)
{
return true;
}
}
}
</script>
</head>
<body>
<script type="text/javascript">
document.write(replaceChars("Aan"));
</script>
</body>
</html>
<html>
<head>
<script type="text/javascript">
function replaceChars(text)
{
/* De 2 arrays defineren om later hiermee letters te vervangen. */
var replaceTo =new Array('A','B','C','D','E','F','G','H','I','J','K','L','M');
var replaceWith =new Array('N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
/*
De tekst die je meegeeft aan de functie splitsen op niks. Dus elke letter wordt apart gezet.
Voorbeeld: 'Aan' ==> Array('A','a','n');
*/
var string = text.split("");
/* Nu gaan welke elke letter controleren uit het woord Aan */
for(var c =0; c < string.length; c++)
{
/* Eerst kijken we of de letter voorkomt uit het eerste rijtje (A t/m M)*/
if(in_array(string[c].toUpperCase(), replaceTo))
{
/*
De letter komt voor in het rijtje, dan gaan we kijken welke letter het precies is.
We elke letter uit de array replaceTo langs om te kijken welke het is.
*/
for(var i =0; i < replaceTo.length; i++)
{
/*
string is de Array met de letters van het woord 'Aan'.
Omdat het een array is, heeft elke letter zijn eigen index waarde.
Door de for loop op regel 17 veranderd c continu. Dus we lopen alle indexen af van string.
Dus string[0] geeft A.
A komt overeen met A in replaceTo en die wordt vervangen door de zelfde index van replaceWith
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.