Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript String Length Differs From PHP mb_strlen (on textarea row, line breaks)

I am using JavaScript as well as PHP to calculate string lengths. Everything is OK except when I calculate a textarea string length coming from Chrome or Firefox versus Internet Explorer. New textarea rows/linebreaks are calculated as 2 chars in Internet Explorer and PHP. But Chrome and Firefox calculate textarea rows/linebreaks just as 1 char (versus PHP and Internet Explorer calculates as 2). This is my problem. Anyone knows how to resolve it?

So JavaScript char count in a textarea in IE = the string length calculated with PHP /// And JavaScript char count in a textarea in Chrome/Firefox does not equal the string length calculated with PHP.

Code used:

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

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

There are other posts about this, mainly the following one: Javascript String Length Differs From PHP mb_strlen . But the answer to my question is not there and couldn't find it on any other posts.

Thanks for your help and suggestions.

like image 295
user977191 Avatar asked Oct 04 '11 00:10

user977191


1 Answers

Firefox and Chrome use only \n for linebreaks while IE(opera too) uses \r\n

To get unique results replace all occurrences of \r\n by \n before counting the string-length

like image 171
Dr.Molle Avatar answered Oct 01 '22 03:10

Dr.Molle