2011-10-04 13 views
5

Sto usando JavaScript e PHP per calcolare le lunghezze delle stringhe. Tutto è OK tranne quando calcolo una lunghezza della stringa textarea proveniente da Chrome o Firefox rispetto a Internet Explorer. Le nuove righe/interruzioni di textarea sono calcolate come 2 caratteri in Internet Explorer e PHP. Ma Chrome e Firefox calcolano righe/interruzioni di textarea come 1 carattere (contro PHP e Internet Explorer calcola come 2). Questo è il mio problema. Qualcuno sa come risolverlo?La lunghezza della stringa JavaScript differisce da PHP mb_strlen (sulla riga textarea, interruzioni di riga)

Quindi il conteggio dei caratteri JavaScript in un'area testo in IE = la lunghezza della stringa calcolata con PHP /// E il conteggio dei caratteri JavaScript in un'area testo in Chrome/Firefox non equivale alla lunghezza della stringa calcolata con PHP.

codice utilizzato:

Javascript : document.getElementById("text").value.length 

PHP : mb_strlen($_POST['text'], 'UTF-8') 

Non ci sono altri post su questo, soprattutto la seguente: Javascript String Length Differs From PHP mb_strlen. Ma la risposta alla mia domanda non c'è e non potrei trovarla su nessun altro post.

Grazie per il vostro aiuto e suggerimenti.

risposta

9

Firefox e Chrome utilizzano solo \n per interruzione di linea mentre IE (opera troppo) utilizza \r\n

Per ottenere risultati unici sostituire tutte le occorrenze di \r\n da \n prima del conteggio della stringa di lunghezza

Problemi correlati