首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取与jQuery `.val().length()`相同的php `str_len `结果

获取与jQuery `.val().length()`相同的php `str_len `结果
EN

Stack Overflow用户
提问于 2012-08-14 18:35:49
回答 1查看 3.3K关注 0票数 8

我使用jQuery动态计算文本区域的值:

代码语言:javascript
运行
复制
function count_chars () {
    count_chars=$('#text_textarea').val().length;
}

...then在提交时序列化表单,通过ajax将文本区域的文本发送到php文件,然后在服务器端验证文本。然而,我在换行符和空格方面遇到了问题。

当然,如果我只是从文本区域获取文本“原样”,php会将每个新行视为两个或四个字符(\n,...)。所以我试着用下面这样的东西来代替它们:

代码语言:javascript
运行
复制
strlen(str_replace(array("\r", "\n"), ' ', $text)))

或者这样:

代码语言:javascript
运行
复制
strlen(preg_replace('/\s+/', ' ', trim($text)))

但是,如果我得到10个段落,jQuery返回2500个字符,php将返回2510或2490,这取决于我是用空格替换新行还是完全删除它们。所以差值是20,但是只有10行新行...?

我遗漏了什么?怎样才能让php返回和jQuery一样的结果呢?问题出在哪里,是php还是jQuery?

EN

回答 1

Stack Overflow用户

发布于 2012-08-14 18:41:57

这应该是可行的:

代码语言:javascript
运行
复制
strlen(str_replace("\r", '', $text)))

解释:

strlen(str_replace(array("\r", "\n"), ' ', $text)))

在这里,您将\r和\n替换为一个空格,因此字符数实际上不会发生变化。

strlen(preg_replace('/\s+/', ' ', trim($text)))

在这里,您正在将连续的空格减少到单个' '中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11950490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档