Avatar billede nute Nybegynder
17. juni 2003 - 13:29 Der er 2 kommentarer og
1 løsning

Hive flere værdier ud fra streng

Hej,

Jeg har følgende HTML side:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    function transform()
    {
        var objTextArea = document.getElementById( "txt" );
        var strText     = objTextArea.value;
        var objRegExp    = /^$/gi;
        // Her vil jeg hive ud værdiene "bullet 1", "bullet 2" og "bullet 3"
    }
    //-->
    </script>

</head>

<body onload="transform()">

<form>
<textarea cols="100" rows="15" id="txt">
Jeg har nogle bullets:
¤BULLET= bullet 1
¤BULLET= bullet 2
¤BULLET= bullet 3</textarea>
</form>
</body>
</html>

i min "transform()" function vil jeg meget gerne have lavet et regulært udtryk der hiver ud al tekst der ligger efter mine "¤BULLET="'s i mit textarea. Er der en mulighed med reg.exp at få en array/collection der giver mig følgende resultat:
( "bullet 1", "bullet 2", "bullet 3" )
?

Nu har jeg prøvet "alt", og er ved at give op.

Det skal også siges at det er et ubestemt antal af "¤BULLET="'s i mit textarea ... der kan være kun 1 optræden, og der kan være 40 ...

/nute
Avatar billede kimiwan Nybegynder
17. juni 2003 - 15:57 #1
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
// extracts the bullets from the text and returns them in array
function getBullets(txt)
{
    var bullets = new Array();
    var re = new RegExp("¤BULLET=([^\n]+)\n", "ig");
   
    while (arr = re.exec(txt) != null)
    {
        bullets.push(RegExp.$1);
    }
   
    return bullets;
}

function transform()
{
    // get array of bullets
    var b = getBullets(document.forms[0].txt.value);
   
    // do whatever you want with the array
    for (var i=0; i<b.length; i++)
    {
        alert(b[i]);
    }
}
//-->
</script>
</head>
<body>
<form>
<textarea name="txt" cols="100" rows="15">
¤BULLET= bullet 1
¤BULLET= bullet 2
¤BULLET= bullet 3
</textarea>
<br />
<input type="button" value="GET BULLETS" onclick="transform()" />
</form>
</body>
</html>
Avatar billede nute Nybegynder
17. juni 2003 - 16:23 #2
njo ... det er sådan set næsten det jeg søger. nu er bare problemet at jeg mister noget av teksten hvis jeg har et linjeskift i en "¤BULLET=":

¤BULLET= bullet 1
¤BULLET= Dette er en
meget lang bullet
¤BULLET= bullet 3

/nute
Avatar billede nute Nybegynder
14. juli 2003 - 15:02 #3
lukker ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester