2017-07-25 76 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

相关问题