[JS] Gegevens uit tekst halen

Pagina: 1
Acties:

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 08:32
Ik ben nu bezig om met javascript iets te maken waardoor ik de waarde die tussen 2 haakjes () staat te krijgen.
Ik heb namelijks verschillende listitems met de volgende opmaak:

Tekst - Teksts (1:23)

Nu wil ik dus 1:23 hieruit halen. Hiervoor heb een reguliere expressie gemaakt die kijkt of de tekst hieraan voldoet, alleen nu is mijn vraag hoe ik deze match weer kan geven. Ik heb nu het volgende:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">

    var handleListClick = function()
        {
            var li = document.getElementsByTagName("li"), i, textnode, t, re, reg;
            for(i=0;i<li.length;i++)
                {
                    li[i].onclick = function()

                        {
                            textnode = this.firstChild.nodeValue;
                            re = textnode.split("-");
                            reg = /^[0-9+:{1}0-9{2}]$/;
                            if(textnode.match(reg)){
                                t = // Hoe krijg ik nu hier de waarde tussen de haken?
                            }
                            alert(re[0]+" * "+re[1]+" en duurt "+t);
                            }
                        }
                    }

window.onload = handleListClick;
</script>


Ik heb wel iets over het RegExp object, maar als ik t = RegExp.$1; doe geeft did undefined terug. Hoe ga ik dit nu werkend krijgen?

edit:
Waarom werken de [ code] tags niet???

[ Voor 18% gewijzigd door crisp op 21-08-2005 22:46 . Reden: fixed de code tag ;) ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

JavaScript:
1
2
3
4
5
6
7
var textnode = 'Tekst - Teksts (1:23)';
var reg = /\((\d:\d{2})\)/;
var match;
if ((match = textnode.match(reg)))
{
    alert(match[1]);
}

[ Voor 4% gewijzigd door crisp op 21-08-2005 22:43 ]

Intentionally left blank


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 08:32
Hmm... had ik zelf niet opgekomen denk ik :X

Bedankt i.i.g. voor de hulp!

edit:
Dan toch nog een verdiepingsvraag. Waarom gebruik je dubbele haken bij de if() constructie?
Wat is daar het nut van?

[ Voor 48% gewijzigd door kleautviool op 22-08-2005 12:15 . Reden: vergeten tekst ]


  • Koeniepoenie
  • Registratie: Oktober 2003
  • Laatst online: 28-04 21:14
kleautviool schreef op maandag 22 augustus 2005 @ 12:13:
edit:
Dan toch nog een verdiepingsvraag. Waarom gebruik je dubbele haken bij de if() constructie?
Wat is daar het nut van?
Hij geeft een variabele eerst een waarde, en laat daarna een boolean opmaken uit die variabele. Als je de haakjes weglaat gaat hij alleen assignen, en dat returnt altijd true. (correct me if I'm wrong :P)

Parse error: syntax error, unexpected GOT_USER in https://gathering.tweakers.net on line 1337


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

match geeft null terug bij geen match; ik cast hier inderdaad het resultaat van de match naar een boolean, maar ik had ook dit kunnen doen:
JavaScript:
1
if ((match = textnode.match(reg)) !== null) { }

in dat geval zijn de extra haken dus zeker nodig, maar in principe is het good practice om het bij elke evaluatie van het resultaat van een assignment te doen.

Intentionally left blank