Can't remove whitespaces from textarea

安稳与你 提交于 2019-12-20 05:50:31

问题


I have two files. First file is a form and the second file displays result.

First file:

<form action="show.php" method=post>
<textarea name="test" cols=40 rows=6>
</textarea>
<input type=submit value="submit">
</form>

Second file:

<?php
$text = trim($_POST['test']);
$textAr = explode("\n", $text);

for ($i=0; $i<sizeof($textAr); $i++)
{
    $link = str_replace(" ", "", $textAr[$i]);
    echo $link."---<br>";
}
?>

When I enter in the form for example

one
two
three

the result is:

one ---
two ---
three---

at the end on the strings: one and two there are whitespaces that I can't remove. Can anybody help me with this?

Thanks I used $link = str_replace("\r", "", $textAr[$i]) and now everything is ok


回答1:


Use trim() instead of str_replace




回答2:


You can use trim function instead of using str_replace to do that.




回答3:


Basically, textarea's linebreaks are \r\n in Internet Explorer, and \n in all other browsers (including Mac's). IE uses \n too since version 9.


There are numerous ways to fix your code. For example, you could try preg_split() :

preg_split('/(?:\r\n|\n)/', $text);

However, I haven't tested the performances of this proposal.

Also, very important, be sure to put the \r\n before the \n in the regex!


Besides, trim() is way more suited than str_replace() (of course if you still need it).




回答4:


Maybe it's non space whitespaces like non-break-spaces (nbsp) or some part of a linebreak combination?




回答5:


Try nl2br() function, could be carriage return or new line (\r\n, \n\r, \n and \r).




回答6:


I know its late but may help others.

use this in when document indentation is required.

$('document').ready(function()
{
    $('textarea').each(function(){
            $(this).val($(this).val().trim());
        }
    );
});


来源:https://stackoverflow.com/questions/8733118/cant-remove-whitespaces-from-textarea

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!