我使用jQuery动态计算文本区域的值:
function count_chars () {
count_chars=$('#text_textarea').val().length;
}
...then在提交时序列化表单,通过ajax将文本区域的文本发送到php文件,然后在服务器端验证文本。然而,我在换行符和空格方面遇到了问题。
当然,如果我只是从文本区域获取文本“原样”,php会将每个新行视为两个或四个字符(\n
,...)。所以我试着用下面这样的东西来代替它们:
strlen(str_replace(array("\r", "\n"), ' ', $text)))
或者这样:
strlen(preg_replace('/\s+/', ' ', trim($text)))
但是,如果我得到10个段落,jQuery返回2500个字符,php将返回2510或2490,这取决于我是用空格替换新行还是完全删除它们。所以差值是20,但是只有10行新行...?
我遗漏了什么?怎样才能让php返回和jQuery一样的结果呢?问题出在哪里,是php还是jQuery?
发布于 2012-08-14 18:41:57
这应该是可行的:
strlen(str_replace("\r", '', $text)))
解释:
strlen(str_replace(array("\r", "\n"), ' ', $text)))
在这里,您将\r和\n替换为一个空格,因此字符数实际上不会发生变化。
strlen(preg_replace('/\s+/', ' ', trim($text)))
在这里,您正在将连续的空格减少到单个' '
中。
https://stackoverflow.com/questions/11950490
复制相似问题