[英]Don't take whitespace in my array [Javascript]
這是我的第一篇文章,對此深表歉意。 我嘗試向您解釋概念和對象
我有此代碼的常見問題解答。 目的是在搜索欄中(帶有輸入項)用少量單詞搜索您的問題。 您用“空白”寫1個或2個單詞,並且所有與此單詞匹配的主題都將顯示它們,而其他主題則顯示:無。
我的問題是:在顯示它們之前,我嘗試將結果良好地放入array []中。 但是問題出在我的輸入上,他使用空格,然后返回所有結果。 然后,我嘗試在Javascript中使用split()來對表達式的輸入進行正則表達式,以刪除該空白並僅返回客戶端寫的單詞,而我只是一個新手。
我在這里,如果您還有其他問題。 謝謝
filterSearchFaq = inputSearchFaq.value.toUpperCase();
splitInput = filterSearchFaq.split(/\s+/);
ulSearchFaq = document.getElementById("listQuestionResponseFaq");
liSearchFaq = ulSearchFaq.getElementsByTagName("li");
var countFound = 0;
var array = [];
for (var i = 0; i < splitInput.length; i++) {
var word = splitInput[i];
for (var j = 0; j < liSearchFaq.length; j++) {
var panelClass =
liSearchFaq[j].getElementsByClassName("panel");
if (null != panelClass[0]) {
panel = liSearchFaq[j].getElementsByClassName("panel")[0];
searchIndex = panel.innerHTML.toUpperCase().indexOf(word);
if (searchIndex > -1) {
array.push(searchIndex);
}
}
}
}
您可以看到第二個單詞,它是一個空格,因為我按了空格鍵,但是當客戶端將按下空格鍵時,我想刪除此空格
[摘自評論]如果我在輸入的內容中沒有輸入任何字詞,或者在第一個或第二個世界后添加空格,則數組中會出現一個:“”,它將返回所有答案。 我的問題是如何刪除陣列中的空白。
解決這個問題的一種簡單方法是從拆分切換為匹配:
" foo bar baz ".match(/(\S+)/g)
這將僅捕獲所有非空白字符組。
這基本上是一種邏輯上的逆轉-而不是分割成單個空格字符(可以在結果中創建“空”元素),您只需匹配連續的非WS字符組-這樣就不再重要了它們之間有一百個空格字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.