簡體   English   中英

使用javascript解析網頁時出錯

[英]error in parsing web page using javascript

我正在嘗試使用javascript解析頁面,這是頁面的一部分:

<div class="title">
        <h1>



                    Affect and Engagement in Game-BasedLearning Environments


        </h1>




    </div>

這是tom頁面的鏈接源:view-source: http : //ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6645369?tp=&arnumber=6645369我正在使用此:

$(data).find('h1').each(function()
                    {console.log($(this).text());
});

現在我可以在標頭中獲取值,但顯示的值前后都有很多空間 。我試圖通過使用replace函數替換空白,但沒有發生重復。我不知道前面有什么和header的值的后面。我想以某種方式刪除多余的空間。

Replace僅替換找到的第一個實例,它可能只刪除了一個空格...而是使用正則表達式語法嘗試以下操作:

text.replace(/ /g, '');

這應該刪除所有空格,甚至是字符串文本中的空格。 為避免這種情況,您可能只想替換雙倍空格:

text.replace(/  /g, '');

另外,您可能要刪除新行:

text.replace(/\n/g, '');

這是一個JSFiddle示例

如果您確定您的字符串僅在兩端被空格包圍,但是您想保留其中的所有內容,則可以使用trim:

text.trim();

由於您已經在使用jQuery,因此可以利用它們的$.trim函數來刪除前導和尾隨空格。

$(data).find('h1').each(function() {
    console.log($.trim($(this).text()));
});

參考: $.trim()

嘗試使用Javascript的Trim()來消除兩面都存在的空格。

功能參考:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

您的HTML實際上將這些步調包含在您的<h1>元素中,因此可以預期它們會出現在.text()結果中。

通常,您只需要使用.trim() 但是,您可能還希望替換文本的換行符。

$(data).find('h1').each(function() {
  var text = $(this).text();
  // Replaces any multiple whitespace sequences with a single space.
  // Even inside the text.!
  // E.g. " \r\n \t" -> " "
  text = text.replace(/\s+/g, " ");
  // Trim leading/trailing whitespace.
  text = text.trim();
  console.log(text);
});

為您的樂趣擺弄小提琴

暫無
暫無

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

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