【问题标题】:Remove new line and carriage return characters in a string删除字符串中的换行符和回车符
【发布时间】:2014-07-03 00:45:09
【问题描述】:

我正在尝试计算文本区域中的字符,但它也将“\n”和“\r”视为字符;我将如何删除它们以便只计算实际的文本输入?

$pure_chars = preg_replace("/\r\n/", "", $_POST['comment']);
echo strlen($pure_chars);

【问题讨论】:

  • 新行计入内容长度(即它们计为数据)。只是好奇在什么上下文中空格和标点符号是相关的,但换行符不会。
  • @Anthony 可能有些人将返回/输入作为单独的行,以制作新的段落类型;至少这是我的看法,并且 OP 不希望那些被计算在内。
  • 问题在于它将新行计为 2 个字符(我猜是因为它是“\n”加上“\r”,而不是 1(或者可能 0 会更好)
  • 这样比较有道理,但是如果有回车换行的话,还是使用数据。我想知道字符数用于您不会计算所有字符的地方。如果设置上限,实际数据将超过清理的计数。如果要确定字数或类似内容,则还应考虑空格和标点符号。如果您想节省空间,您希望规范化或删除字符,而不是在没有它们的情况下获得计数。

标签: php preg-replace newline carriage-return


【解决方案1】:
$pure_chars = preg_replace('/[\r\n]+/','', $string)

请注意,您仍在计算空格、标点符号等,因此实际上需要决定您真正要计算的内容。如果您想排除任何不是字母或数字的内容,请使用/\W/

【讨论】:

    猜你喜欢
    • 2017-12-11
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2011-06-21
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    相关资源
    最近更新 更多