Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    16

    Problema con funzione .split

    Il mio problema è il seguete, io ho una textarea html dove vengono inseriti degli indirizzi email separati dal tasto "a capo" \r\n.

    A questo punto con javascript vorri fare quello che in php viene fatto con explode() e più precisamente array = explode("\r\n", textarea).
    array[1] conterrà la prima riga, array[2] la seconda, ecc

    in javascript ho trovato la funzione split ma non sembra funzionare e non capisco il perchè.

    Pasto il codice.

    var email = window.document.frm.email.value.split("\r\n");
    for (i=0; i < email.length; i++)
    {
    if ( !check_email(email[i]) )
    {
    alert (email[i]);
    return;
    }
    }
    submit();

    Ho già provato anche con split(String.fromCharCode(13)) e a dichiarare email come array(), o a separare la cosa in più parti ma niente ogni volta che stampo l alert mi stampa la casella di testo completa e non splittata sia che io stampi email[i] che email e basta

    la funzione check_mail non la riporto perchè so già se funziona, testata con l insemimento di una singola email.

    Vi ringrazio anticipatamente dell aiuto.

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: IE e Opera, quando premo enter in un TextArea, aggiungono il separatore \r\n

    Firefox invece aggiunge solo \n

    Io farei così:
    codice:
    function Button1_onclick() 
    {
        var v = document.getElementById("TextArea1");
        var a = v.value.replace(/\r/g, "").split("\n");
        alert(a + ", \n\n" + a.length);
    }
    Pietro

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    16
    Mi spieghi cosa vuol dire questo replace(/\r/g, "") perchè hai scritot così e non semplicemente \r

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    16
    Tra le altre cose anche così con Opera non funziona fon FF camino e safari Si con IE proverò poi.

    Sti browser non riescono a essere compatibili neanche nella codifica dei tasti...

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da drkranio
    Mi spieghi cosa vuol dire questo replace(/\r/g, "") perchè hai scritot così e non semplicemente \r

    Grazie
    elimino tutti i \r e poi separo per \n
    Pietro

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    16
    Sapresti mica fare il contrario? cioè fare il replace degli \n in \r\n ? senza però che succeda una cosa di questo tipo e cioè che se trova \r\n non diventi \r\r\n

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da drkranio
    Sapresti mica fare il contrario? cioè fare il replace degli \n in \r\n ? senza però che succeda una cosa di questo tipo e cioè che se trova \r\n non diventi \r\r\n
    espressioni regolari! non è che le maneggi bene, purtroppo
    Pietro

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    16
    Ho risolto grazie adesso funziona con tutti, grazie ancora

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da drkranio
    Ho risolto grazie adesso funziona con tutti, grazie ancora
    tanto per concludere, non credo che serva, comunque:
    codice:
    function Button1_onclick() 
    {
        var v = document.getElementById("TextArea1");
        var a = v.value.replace(/\r\n/g, "\n").replace(/\n/g, "\r\n").split("\r\n");
        alert(a + ", \n\n" + a.length);
    }
    sostituisco tutti i \r\n con \n, poi sostituisco i \n con \r\n, poi separo con \r\n :master:
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.