Kjapp og trygg hosting for Wordpress

Javascript som kan kjenne igjen ord

Demilio

Medlem
Noen som vet om et javascript som kan kjenne igjen ord i en setning og om det spesielle ordet finnes i setningen skal det legges til i en ny setning.

F.eks.

Setningen er: "jeg bor i oslo nå"

hvis setningen inneholder ordet oslo skal oslo hentes og skrives inn i en ny tekst. F.eks. "Søk etter oslo".

Kanskje ca sånn her:

if "Oslo"
document.write ('Søk etter Oslo?')
else
document.write ('setningen inneholder ikke ordet Oslo')

Vanskelig å forklare men noen som forstår?
 
Sist redigert:

Demilio

Medlem
JavaScript indexOf() Method

Du bør da vel ha en liste med ord som er aktuelle, gå gjennom denne listen og sjekke mha indexof om den finnes i text-strengen. Konverter text-strengen til lower case først .toLower().

Jeg er dessverre ikke helt god på JS, så jeg forstår ikke helt hva du mener. Jeg kikket litt på scriptet og ser at dette er noe på vei dit jeg ønsker, men hvordan får jeg dette scriptet til å hente ut et ord fra en setning og så poste dette i en ny setning?
 

adeneo

Medlem
Noe sånt kanskje ?

HTML:
<!DOCTYPE html> 
        <head>
                <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
                <title>Test</title>
                <meta name="description" content="TittenTei InterActive" />
                <style type="text/css">
                        .opaq {opacity:0.5;} #search {margin-right: 50px;} #result p {font-size: 1.5em; font-weight:bolder;}
                </style>
                <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
                <script type="text/javascript">
                        $(document).ready(function() {
                                var ord = "Oslo";
                                var posres = "Sok etter Oslo?";
                                var negres = "Setningen inneholder ikke ordet Oslo";
                                var resdiv = $("#result p");
                                var boxtxt = "Skriv setning";
                                $("#search").blur(function(){
                                                $(this).toggleClass("opaq");
                                                if ($(this).val() === "") {$(this).val(boxtxt); resdiv.empty();}
                                            })
                                            .focus(function() {
                                                $(this).toggleClass("opaq");
                                                if ($(this).val() === boxtxt) {$(this).val(""); resdiv.empty();}
                                            })
                                            .keyup(function() {
                                                if ($('#case').is(':checked')) {ord="Oslo"; var returntxt = $(this).val();}
                                                else {ord=ord.toLowerCase(); var returntxt = $(this).val().toLowerCase();}
                                                if (returntxt.indexOf(ord) !== -1 ) {resdiv.empty().append(posres);}
                                                else {resdiv.empty().append(negres);}
                                });
                        });
                </script>
        </head>
        <body>
                <form>
                        <input id="search" class="opaq" type="text" value="Skriv setning" />
                        <input id="case" type="checkbox">Case Sensitive<br />
                </form>
                <div id="result"><p></p></div>
        </body>
</html>

Dersom det kun er tekst i ett element kan du se på jQuery's :contains og .filter(); funksjoner.
 

adeneo

Medlem
Jo takk, eksempelet bruker som Pong nevner ovenfor indexOf ettersom det virket enklest i en tekstboks, dersom det er tekst i for eksempel en div eller span osv. du ønsker å finne er :contains (som ikke er det samme som .contains(); ) mye enklere, og i noen tilfeller er jQuery's .filter() eller .find() enklere, kommer an på hva du søker i.

Pakket det litt godt sammen for å bli enklere å lime inn her, men sjekkingen ser du sikkert er bindt til keyup eventen, som er en grei måte å gjøre det på dersom man ønsker det dynamisk, dersom man ikke ønsker det dynamisk kan det like gjerne bindes til en button eller noe annet.

Det gikk vist litt fort, det burde vært en funksjon til å oppdatere case sensitiv ved klikk på sjekkboksen, og jeg har glemt å bytte ut "o"'en i "Sok etter Oslo" med en "&oslash;".
 
Sist redigert:
Topp