2015-11-21 58 views
-2

我想在可竞争的div中键入文本,并且当我通过它们循环for循环作为数组并检查是否有任何空格字符(即abc de即两个单词之间的空格,它不会将它们识别为空字符串)。请参阅下面的代码。检查数组中的字符串是否具有空格字符javascript/jquery

脚本:

function htmltoBBcode() { 
    $("#hidden").html($('#textEditor').html()); 
    $("#hidden").html($('#textEditor').html()); 
    var arr=$("#hidden").text(); 
    for(var i=0;i<arr.length;i++) 
    { 
     if(arr[i]=='') 
     { 
      console.log("i is true"+arr[i]); 
     } 
     else{ 
      console.log("i is false"+arr[i]); 
     } 
    } 
} 

在上面的代码,我正在从CONTENTEDITABLE DIV文本,并通过他们的循环,如果arr[i]==''它应该在console.logreturn true但它一直返回false始终,即使它是一个空字符串(空格)。

Demo

+1

的空间不是空string.Quite不清楚你期待什么。也许'arr [i] =='''??? –

+0

@ A.Wolff:当我得到文本'abc de'并在一个数组中逐个字符地显示它。这个空间将被存储为什么?我尝试获取类型arr [i],并将空格显示为字符串。我错了吗? – Pbk1303

+0

''==“”; //始终为false。一个空字符串不能等于一个空格字符。 –

回答

3

如果你想检查一个字符串是空的使用:

if (!arr[i]) { 
    // is emtpy 
} 

考虑到字符串不认为是空的,如果有空格在里面!如果你想忽略空白:

if (!arr[i].trim()) { 
    // is empty 
} 
3

没有空卡拉科特取消这个位置。这是一个太空carácter。您可以使用此功能检查是否有空格字符。

function hasWhiteSpace(s) { 
    return /\s/g.test(s); 
} 


if(hasWhiteSpace(arr[i])) 
      { 
       console.log("i is  true"+arr[i]); 
      } 
1

正如A.沃尔夫指出的那样,空格不是空字符串。我还将==更改为===以避免强制。这里有一个jsbin

JS

function htmltoBBcode() { 
    $("#hidden").html($('#textEditor').html()); 
    $("#hidden").html($('#textEditor').html()); 
    var arr=$("#hidden").text(); 
    for(var i=0;i<arr.length;i++) 
    { 
     if(arr[i]===" ") 
     { 
      console.log("i is true: "+arr[i]); 
     } 
     else{ 
      console.log("i is false: "+arr[i]); 
     } 
    } 
} 
相关问题