Javascript som kan kjenne igjen ord

En tråd i 'Javascript/Ajax' startet av Demilio, 29 Sep 2011.

  1. Demilio Medlem

    Innlegg:
    182
    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: 29 Sep 2011
  2. Pong

    Pong Jeg selger sʇɥƃıluʍop :)

    Innlegg:
    3.456
    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().
     
  3. Demilio Medlem

    Innlegg:
    182
    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?
     
  4. adeneo

    adeneo Medlem

    Innlegg:
    1.611
    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.
     
  5. Demilio Medlem

    Innlegg:
    182
    haha, dritbra! Du er god adeneo. Dette har jeg lett etter lenge. Takker for fantastik hjelp :)
     
  6. adeneo

    adeneo Medlem

    Innlegg:
    1.611
    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: 29 Sep 2011

Del denne siden