2011-03-18 65 views
0

我有这个PHP代码完美的作品:PHP Preg_match_all在Javascript

preg_match_all(
    '/<div style="display:block; float:left; height:240px; width:150px;' 
    . ' text-align:center; margin:5px; overflow:hidden;">.*?' 
    . '<span class="card-text">(.*?)' 
    . '<span class="instruction">\((.*?)\)<\/span>/s', 
    $html, 
    $students, 
    PREG_SET_ORDER 
); 

foreach($students as $student) { 
    echo($student[1].",".$student[2]."<br />"); 
} 

我怎么会在JavaScript这样做呢?谢谢!

+0

在JavaScript你有一个字符串与HTML或者你正确地遍历DOM?如果你使用DOM(我会建议)这样做,你可以使用一种完全不同的方法来使用DOM函数,比如'document.getElementById'和'parent.getElementsByTagName',然后遍历这些结果。 – 2011-03-18 22:52:49

+0

这是一个很长的字符串。大约500K – 2011-03-18 22:55:00

回答

2

坦白说,你应该不是使用JavaScript来做到这一点。你不应该试图用正则表达式解析太多的HTML。

相反,你应该考虑在寻找的东西像Simple HTML Dom parser

至于一个JavaScript的解决方案 - JS是一个DOM解析器!

var student1 = document.getElementsByClassName('card-text')[0]; 
var student2 = document.getElementsByClassName('instruction')[0]; 
//echo out 

一个更好的解决办法是使用jQuery,因为你有较少的问题,DOM操作(其选择器引擎是太棒了!)see rough example here

+0

我实际上在项目的其他部分使用jquery,感谢这个快速示例,我会看看它。 – 2011-03-18 23:00:46