Reputation: 871
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.
Upvotes: 7
Views: 2423
Reputation: 117334
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
Upvotes: 12