2017-02-15 60 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

我希望這會幫助你:) –

相關問題