2011-10-04 10 views
5

Używam JavaScript, a także PHP do obliczania długości łańcuchów. Wszystko jest w porządku, chyba że obliczę długość ciągu tekstowego pochodzącego z przeglądarki Chrome lub Firefox i Internet Explorera. Nowe wiersze textarea/linebreaks są obliczane jako 2 znaki w Internet Explorerze i PHP. Ale Chrome i Firefox obliczają wiersze tekstu/linebreaki tak samo, jak 1 znak (w porównaniu do PHP i Internet Explorer oblicza się jako 2). To jest mój problem. Ktoś wie, jak to rozwiązać?Długość łańcucha znaków różni się od PHP mb_strlen (w wierszu textarea, podziały wierszy)

Więc liczba znaków JavaScript w obszarze tekstowym w IE = długość łańcucha obliczona za pomocą PHP /// A liczba znaków JavaScript w obszarze tekstowym w przeglądarce Chrome/Firefox nie jest równa długości łańcucha obliczonej w PHP.

kod używany:

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

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

Istnieją inne posty na ten temat, głównie na następujący: Javascript String Length Differs From PHP mb_strlen. Ale odpowiedź na moje pytanie nie istnieje i nie można jej znaleźć na żadnym innym stanowisku.

Dzięki za pomoc i sugestie.

Odpowiedz

9

Firefox i Chrome używać tylko \n dla wierszami natomiast IE (opera zbyt) wykorzystuje \r\n

Aby uzyskać unikalne wyniki zastąpić wszystkie wystąpienia \r\n przez \n przed licząc string-length

Powiązane problemy