簡體   English   中英

不要在我的數組中使用空格[Javascript]

[英]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);
                            }                                                           
                        }        
                    }

            }

的console.log

您可以看到第二個單詞,它是一個空格,因為我按了空格鍵,但是當客戶端將按下空格鍵時,我想刪除此空格

[摘自評論]如果我在輸入的內容中沒有輸入任何字詞,或者在第一個或第二個世界后添加空格,則數組中會出現一個:“”,它將返回所有答案。 我的問題是如何刪除陣列中的空白。

解決這個問題的一種簡單方法是從拆分切換為匹配:

" foo bar baz ".match(/(\S+)/g)

這將僅捕獲所有非空白字符組。

這基本上是一種邏輯上的逆轉-而不是分割成單個空格字符(可以在結果中創建“空”元素),您只需匹配連續的非WS字符組-這樣就不再重要了它們之間有一百個空格字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM