2017-02-15 61 views
1

因此,我有一个程序用于计算加载到iFrame中的文档中的单词,将所有换行字符替换为空格,然后字符串被拆分空间,然后我想将它们添加到地图中作为键,并将它们的值设置为1(如果它们不在地图中或不是空格),这就是我遇到问题的原因,因为它仍在计算每个空间字符串,我觉得我真的很愚蠢,缺少一些明显的东西...检查字符串是否不是Javascript中的空格

var innerDoc = document.getElementById("pageinframe"); 
var innerDocContent = innerDoc.contentDocument.body.innerHTML; 
var split = strip(innerDocContent).replace(/(\r\n|\n|\r)/gm, " ").split(" "); 
var obj = new Map(); 
for (var x = 0; x < split.length; x++) { 
    console.dir(typeof split[x]); 
    if(!obj.has(split[x]) && (split[x] != " ")) { 
     obj.set(split[x], 1); 
     } 
     else if (split[x] != " ") { 
     obj.set(split[x], obj.get(split[x])+1); 
     } 
} 

function strip(str) { 
    var tmp = document.createElement("DIV"); 
    tmp.innerHTML = str; 
    return tmp.textContent || tmp.innerText || ""; 
} 
+1

如果您使用'拆分'不是它已经给你一个单词的数组,没有空格字符? –

+1

使用'/ \ b/g'来查找单词会更容易吗? – adeneo

回答

1

有一些,icant理解。当你分裂('')。该数组不包含'',只有单词!!!,https://www.w3schools.com/jsref/jsref_split.asp。儿子为什么需要testif是白色空间。然后我想,它可能在:

.replace(/(\r\n|\n|\r)/gm, " ") 
0

拆分数组包含“”不“”像我最初想的那样。就像我说的,我错过了一些非常明显的东西,只需要看看数组中的内容。

0
var innerDoc = document.getElementById("pageinframe"); 

var innerDocContent = innerDoc.contentDocument.body.innerHTML; 

var split = strip(innerDocContent).replace(/(\r\n|\n|\r)/gm, " ").split(" "); 
var obj = new Map(); 
for (var x = 0; x < split.length; x++) { 

    // Removing NaN for string 
    if(split[x].charCodeAt(0)) 
    { 
     if(!obj.has(split[x]) && (split[x] != " ")) { 
      obj.set(split[x], 1); 
      } 
      else if (split[x] != " ") { 
      obj.set(split[x], obj.get(split[x])+1); 
      } 
    } 
} 

function strip(str) { 
    var tmp = document.createElement("DIV"); 
    tmp.innerHTML = str; 
    return tmp.textContent || tmp.innerText || ""; 
} 

console.log(obj); 
+0

我希望这会帮助你:) –

相关问题