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

Zmiana liter, powtórzenia JavaScript

0 głosów
1,122 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,624 wizyt
0 głosów
3 odpowiedzi 3,813 wizyt
pytanie zadane 28 marca 2020 w C i C++ przez Eriss69 Gaduła (4,470 p.)
0 głosów
1 odpowiedź 1,115 wizyt

93,604 zapytań

142,529 odpowiedzi

322,996 komentarzy

63,092 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

Kursy INF.02 i INF.03
...