• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmiana liter, powtórzenia JavaScript

Object Storage Arubacloud
0 głosów
777 wizyt
pytanie zadane 13 czerwca 2018 w JavaScript przez Dwite Nowicjusz (140 p.)
edycja 13 czerwca 2018 przez Dwite

Cześć,

Mam problem z pewnym zadaniem i szukam odpowiedzi/podpowiedzi. Mógłby ktoś poratować jakimś pomysłem co zrobić ? Jak policzyć ilość zmienionych liter ( u --> ó, ch --> h, ę --> en) oraz jak dodać do tekstu powtórzenia ?

Dokładne polecenie:

 


<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>...</title>
    <script language="JavaScript">

        function pobieranie() {
            var poziom_trudnosci = document.getElementById("trudnosc").value;



        if(poziom_trudnosci=="1"){
            document.getElementById("trudnosc").innerHTML = "";
            zamiana1()
        }

        if(poziom_trudnosci=="2") {
            document.getElementById("trudnosc").innerHTML = "";
            zamiana2()
        }

        if(poziom_trudnosci=="3"){
            document.getElementById("trudnosc").innerHTML = "";
           zamiana3()
        }

        function zamiana1() {
            var s = prompt("Wpisz tekst:" + String());
            s = s.replace(/u/gi, "ó");
            s = s.replace(/ch/gi, "h");
            document.write(s);
        }

        function zamiana2() {
            var s = prompt("Wpisz tekst:" + String());
            s = s.replace(/u/gi, "ó");
            s = s.replace(/ch/gi, "h");
            s = s.replace(/ę/gi, "en");
            s = s.replace(/si/gi, "ś");
            document.write(s);
        }

        function zamiana3() {
            var s = prompt("Wpisz tekst:" + String());
            s = s.replace(/u/gi, "ó");
            s = s.replace(/ch/gi, "h");
            s = s.replace(/ę/gi, "en");
            s = s.replace(/si/gi, "ś");
            s = s.replace(/ci/gi, "ć");
            s = s.replace(/ą/gi, "om");
            document.write(s);
        }
        }

    </script>
</head>
<body>
<input type="text" value="1" placeholder="Poziom trudności" id="trudnosc">
<input id="xd" onclick="pobieranie()" type="submit" value="Generuj" />
</body>
</html>

 

komentarz 13 czerwca 2018 przez shotokan Nałogowiec (39,660 p.)
Może tak, sprawdzasz czy zmiana się dokonała i jeśli tak to zwiększasz licznik?
komentarz 13 czerwca 2018 przez Dwite Nowicjusz (140 p.)
Mógłbyś mi podać jakiś przykład bo trochę nie ogarniam ;/
komentarz 13 czerwca 2018 przez shotokan Nałogowiec (39,660 p.)
if (s.replace(/u/gi, "ó") licznik++;

ale nie wiem, czy będzie to działało tak, jak myślę

komentarz 13 czerwca 2018 przez Dwite Nowicjusz (140 p.)

Wydaje mi sie że to tak nie zadziała bo to nie zwraca booleana :D ale dałem rade z tymi błędami, kod wygląda tak:

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>...</title>
    <script language="JavaScript">

        function pobieranie() {
            var poziom_trudnosci = document.getElementById("trudnosc").value;



            if(poziom_trudnosci=="1"){
                document.getElementById("trudnosc").innerHTML = "";
                zamiana1()
            }

            if(poziom_trudnosci=="2") {
                document.getElementById("trudnosc").innerHTML = "";
                zamiana2()
            }

            if(poziom_trudnosci=="3"){
                document.getElementById("trudnosc").innerHTML = "";
                zamiana3()
            }

            function zamiana1() {
                var s = prompt("Wpisz tekst:" + String());
                var ilosc_bledow = 0;
                ilosc_bledow += licznik(s,'u');
                ilosc_bledow += licznik(s,'h');

                alert("Ilość błędów : " + ilosc_bledow);

                s = s.replace(/u/gi, "ó");
                s = s.replace(/ch/gi, "h");
                document.write(s);
            }

            function zamiana2() {
                var s = prompt("Wpisz tekst:" + String());

                var ilosc_bledow = 0;
                ilosc_bledow += licznik(s,'u');
                ilosc_bledow += licznik(s,'h');
                ilosc_bledow += licznik(s,'ę');
                ilosc_bledow += licznik(s,'ś');

                alert("Ilość błędów : " + ilosc_bledow);

                s = s.replace(/u/gi, "ó");
                s = s.replace(/ch/gi, "h");
                s = s.replace(/ę/gi, "en");
                s = s.replace(/si/gi, "ś");
                document.write(s);
            }

            function zamiana3() {
                var s = prompt("Wpisz tekst:" + String());

                var ilosc_bledow = 0;
                ilosc_bledow += licznik(s,'u');
                ilosc_bledow += licznik(s,'h');
                ilosc_bledow += licznik(s,'ę');
                ilosc_bledow += licznik(s,'ś');
                ilosc_bledow += licznik(s,'ć');
                ilosc_bledow += licznik(s,'ą');

                alert("Ilość błędów : " + ilosc_bledow);

                s = s.replace(/u/gi, "ó");
                s = s.replace(/ch/gi, "h");
                s = s.replace(/ę/gi, "en");
                s = s.replace(/si/gi, "ś");
                s = s.replace(/ci/gi, "ć");
                s = s.replace(/ą/gi, "om");
                document.write(s);
            }
        }

        function licznik(s,znak) {
            var ar = s.split('');
            var number = 0;
            ar.forEach(element => {
                if (znak == 'h') {
                if (element == 'c' && ar[ar.indexOf(element) + 1] == znak) {
                    number++;
                }
            }
        else if (znak == 'ś') {
                if (element == 's' && ar[ar.indexOf(element) + 1] == 'i' ) {
                    number++;
                }
            }
            else if (znak == 'ć') {
                if (element == 'c' && ar[ar.indexOf(element) + 1] == 'i' ) {
                    number++;
                }
            }
            else if (element == znak) {
                number++;
            }
        });
            return number;
        }
    </script>
</head>
<body>
<input type="text" value="1" placeholder="Poziom trudności" id="trudnosc">
<input id="xd" onclick="pobieranie()" type="submit" value="Generuj" />
</body>
</html>

 

komentarz 13 czerwca 2018 przez Dwite Nowicjusz (140 p.)
Nie wiem tylko jak zrobić te powtórzenia np co 9 wyraz, ktoś coś ? :D
komentarz 13 czerwca 2018 przez shotokan Nałogowiec (39,660 p.)
To może tak, pobierasz zdanie od użytkownika, rozdzielasz metodą split do tablicy każdy wyraz i z tego losujesz dany wyraz który ma się powtórzyć (albo na sztywno wybierasz konkretny). Tworzysz nową tablicę z tym dodatkowym wyrazem a potem elementy tablicy scalasz jako zdanie.
komentarz 13 czerwca 2018 przez Dwite Nowicjusz (140 p.)
Bardzo dziękuje za pomoc, udało mi się zrobić wszystko co potrzebowałem :D
komentarz 13 czerwca 2018 przez shotokan Nałogowiec (39,660 p.)
Proszę bardzo, choć wygląda, że sam sobie z tym wszystkim poradziłeś :)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 4,065 wizyt
0 głosów
3 odpowiedzi 2,292 wizyt
pytanie zadane 28 marca 2020 w C i C++ przez Eriss69 Gaduła (4,470 p.)
0 głosów
1 odpowiedź 783 wizyt

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,003 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...