在Javascript变量中删除空格

3

我正在使用AJAX通过PHP从MYSQL数据库检索数据。

然而,如果没有找到结果,变量仍然有两个空格。使用alert(data.length);发现了这个问题。结果是2,这意味着有两个空格。

如何删除这些空格,以便如果没有结果,我可以使用if(data == ''){}显示消息?

谢谢!


如果我是你,我会在 PHP 端使用 trim 函数来处理响应。 - bfavaretto
@bfavaretto - 我尝试这样做了,但我不知道,即使查询为空($query),查询仍会通过if($query)。 - Naveen Gamage
7个回答

9

这称为字符串修剪。在纯JavaScript中,以下是一种选项:

var len = data.replace(/\s/g, "").length;

然而,在现代浏览器中,有一个字符串trim()函数可以实现该功能:

var len = data.trim().length;

但是如果有一些结果,我不想删除空格,那么这些结果中的空格也将被删除。如果数据长度为2,则可以尝试修整它。谢谢你的回答。 - Naveen Gamage

3

我无法理解为什么起初这两个空格存在。

如果可以,请尝试从服务器响应处删除这些空格,这是一个合适的选择。

如果不能删除,你可以使用 String.prototype.trim 去除前导/尾随空格。这将使你可以编写如下检查:

if (data.trim().length === 0) {
  ...
}

1

3个选项:

var strg = "there is space";
strg.replace(/\s+/g, ' ');

或者:

$.trim()

或者:

String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g, ""); 
}

var strg = "there is space";
strg.trim();

但是如果有任何结果,我不想删除空格,那么这些结果中的空格也将被删除。现在,如果数据长度为2,则可以使用您的方法进行修剪。非常感谢。 - Naveen Gamage

1
var str = "lots of whitespace";
str.replace(/\s+/g, ''); // 'lotsofwhitespace'

1

1
如果你的变量是 data,那么尝试这个。
    data.replace(/\s+/g, '');

如果需要,可以将其分配给其他变量

data2 = data.replace(/\s+/g, '');

1

data = data.split(' ').join('')将从字符串中删除所有空格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接