簡體   English   中英

使用jQuery / javascript使用正則表達式解析文本

[英]parse text using regex using jquery/javascript

txt = '<a class="info" href="/some/link" original-title="hello world <br/> Monday <br/> 2 days <br/> Test"> 10 </a>';

var pattern = /\s\d+/;
var parsed_data = parseInt((txt.match(pattern)||['0'])[0]);

從某些示例獲得了此正則表達式模式。 我試圖解析文本,即錨標記的值10。 但是獲得的值為2。

編輯:我正在使用數據表來填充表。 問題是字符串,即txt是一個行元素,使用循環從表中提取出來,需要添加這些值,例如

var parsed_data += parseInt((txt.match(pattern)||['0'])[0]);

用正則表達式解析html內容是一個非常糟糕的主意,在這種情況下,請使用jQuery對其進行修復。

var txt = '<a class="info" href="/some/link" original-title="hello world <br/> Monday <br/> 2 days <br/> Test"> 10 </a>';

var parsed_data = parseInt($(txt).text(), 10);
console.log(parsed_data)

演示: 小提琴

您可能會有類似的內容:

var txt = '<a class="info" href="/some/link" original-title="hello world <br/> Monday <br/> 2 days <br/> Test"> 10 </a>';

var pattern = /.*>\s*(\d+)/;
var matches = txt.match(pattern);
var parsed = matches ? +matches[1] : 0;

但是,此正則表達式僅使用標記(>)內的最后一位:如果您想獲得更精確的信息,則應使用DOM解析HTML –這會更加昂貴。 這實際上取決於您的數據是什么,如果您始終使用這種格式,則不需要DOM。

暫無
暫無

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

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