[英]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.