我正在尝试将正则表达式(包含 1 个变量)与存储为字符串的 HTML 代码页面进行匹配。
HTML 字符串是一个数组,每个元素都包含如下所示的内容。(我已经拆分了某个标签)。数组的每个元素都包含房屋的一些数据(名称、平方米数量等)。当然是虚构的。关键是我需要通过匹配第一个 TD 标签之间的文本来匹配其中的一个,而我需要的部分是表单最后一个 INPUT 标签中的 VALUE(数字)。
<TR BGCOLOR=#D4C0A1>
<TD WIDTH=40%><NOBR>Luminous Arc 2</NOBR></TD>
<TD WIDTH=10%><NOBR>154 sqm</NOBR></TD>
<TD WIDTH=10%><NOBR>6460 gold</NOBR></TD>
<TD WIDTH=40%><NOBR>rented</NOBR></TD>
<TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0>
<FORM ACTION= METHOD=post><TR><TD>
<INPUT TYPE=hidden NAME=world VALUE=Olympa>
<INPUT TYPE=hidden NAME=town VALUE="Yalahar">
<INPUT TYPE=hidden NAME=state VALUE=>
<INPUT TYPE=hidden NAME=type VALUE=houses>
<INPUT TYPE=hidden NAME=order VALUE=>
<INPUT TYPE=hidden NAME=houseid VALUE=37010>
<INPUT TYPE=image NAME="View" ALT="View" SRC="" BORDER=0 WIDTH=120 HEIGHT=18>
</TD></TR></FORM></TABLE></TD></TR>
我构建了以下正则表达式:
var regex = new RegExp(house + "[\\s\\S]+name=houseid value=([0-9]+)>", "i");
house
房子的名字在哪里(在这个例子中, Luminous Arc 2
),我需要的部分是 houseid 37010
。
我认为这个正则表达式应该可以很好地工作并给我我需要的命中,但是houses[i].match(regex)
每次都返回 null。我在字符串中找不到匹配项。
到目前为止,我已经尝试了几种方法,包括尝试将字符串转换为 DOM 对象以拆分 TR 标签(转换失败)。我觉得我很接近,但我被困住了。
有谁知道为什么我的正则表达式可能无法工作?
肯尼斯