一尘不染

responseText包含多余的空格字符(换行符,换行符),如何防止和删除它们?

ajax

我有一个调用php文件的ajax脚本。

php文件回显“是”或“否”,我想使用字符串进行逻辑比较。

在javascript中,我想比较responseText中的字符串,看它是否==等于“是”(或“否”)。但是比较失败。

因此,我执行警报responseText,它的字符串确实显示“是”(或“否”)。但是我在这里读到responseText可能包含隐藏的空格字符,所以我做了responseText的字符串长度,它表明该字符串的长度比应该的长4个字符。所以我转义了responseText警报(escape(responseText)),它表明在responseText字符串的末尾隐藏了%0A和%0D(换行和换行符)。

我读到这些字符是由php添加的,但我也读到,不同的php版本/服务器之间的额外字符是不同的。

由于正则表达式可能会删除有意的空格,因此如何在不使用正则表达式的情况下防止这些多余的空格?

请不要建议使用jquery或mootools作为答案。

TIA


阅读 571

收藏
2020-07-26

共1个答案

一尘不染

我读到这些字符是由php添加的,但我也读到,不同的php版本/服务器之间的额外字符是不同的。

错了 验证起来很简单:创建一个test.php文件,将其写入并且仅将其写入<?php echo "test";(不带?>)并执行。不会有空格。

这些空格很可能来自您的脚本。一个常见的错误是在关闭php标记(?>)后留下了一些尾随的换行符,从而导致打印新行。

确认您之前或之后包含的所有文件echo "yes";都没有回显任何内容,并且在?>。之后没有结尾的换行符。

避免此问题的最简单方法是在文件末尾不使用php close标记(它们不是强制性的)。

2020-07-26