2017-07-25 71 views
-3

所以,我得到了一些我需要提取值的html表格,做了一個正則表達式來獲得我想要的值。正則表達式沒有給出預期的結果

的HTML表格可在下列2種格式:

<td height="20" style="width:59px;height:20px;">1</td> 
      <td style="width:212px;">Mendes, Paulo [AA]</td> 
      <td style="width:99px;">39</td> 
      <td>8</td> 
      <td style="width:85px;">$10,000</td> 
     </tr><tr height="20"><td height="20" style="width:59px;height:20px;">2</td> 
      <td style="width:212px;">Campos, Miguel [AC]</td> 
      <td style="width:99px;">37</td> 
      <td>6</td> 
      <td style="width:85px;">$5,000</td> 

而另外一個

<td>1</td> 
      <td>Mendes, Paulo [AA]</td> 
      <td>39</td> 
      <td>8</td> 
      <td>$10,000</td> 
     </tr><tr height="20"><td>2</td> 
      <td>Campos, Miguel [AC]</td> 
      <td>37</td> 
      <td>6</td> 
      <td>$5,000</td> 

要沒有樣式的例子我能得到我想要這個正則表達式的值:

<td>(\d+)<\/td>\n+\t*<td>([\w+, ]+) \[(\w{2})\]<\/td> 

它將被用於PHP,我一直在使用https://regex101.com/先測試正則表達式。

現在獲取表格的值與我沒有運氣的樣式。

嘗試了「門當戶對」有:

<td height\=\"20\" style\=\"width\:59px\;height\:20px\;\">(\d+)<\/td>\n+\t*<td style\=\"width\:212px\;\">([\w+, ]+) \[(\w{2})\]<\/td> 

,但它不趕要我要。甚至試圖做一個否定搜索,但它仍然不起作用。我做錯了什麼?

+0

相關:https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –

+0

哦.. 。「因爲HTML不能被正則表達式解析。」 –

回答

0

爲什麼不使用QuerySelectorAll('');這很容易。您可以使用它來檢索td元素的內部文本,並使用循環將它們存儲在數組中。一旦你有了td,你可以使用jQuery Ajax將它發送到一個.php文件來處理你想要的。

例如:

var tdArr = []; 

var tdContent = document.querySelectorAll('table tr td'); 

for (let i = 0; i < tdContent.length; i++){ 
    tdArr.push(tdContent[i].textContent); 
} 
+0

不知道那件事,就此調查。謝謝 –

+0

沒問題,我希望它有幫助 – smuhero

相關問題