0

我一生都无法确切地找出这个错误与我的代码相关的含义。

HTML

<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../styles.css" type="text/css">
<body bgcolor="#FFFFFF" text="#000000" link="#0033CC" vlink="#0033CC" alink="#0033CC">
<p><font face="Arial, Helvetica, sans-serif"><b><font color="#000000">Job ref:</font></b><font color="#000000">12345 <br>
<b>Position:</b> Position Title <br>
<b>Organisation:</b> Organisation Name <br>
<b>Location: </b> UK, England, London <br>
<b>Closing date:</b> 24/09/2015<br>
<b>Job Type:</b> Permanent <br>
<b>Salary:</b> £100,000 per annum </font></font></p>
<p>&nbsp;</p>
<p><font color="#000000" face="Arial, Helvetica, sans-serif"><b>Details:</b></font></p>
<p><font color="#000000" face="Arial, Helvetica, sans-serif">This is a description</font></p>
</body>
</html>

JAVASCRIPT

  DataExtractor.AddHeader(1, 'Country');

  var tmp = document.body.outerHTML.match(/Location: <\/b> ([^,]+), ([^,]+), ([^,]+)/i);

  var country = tmp[1] 

  if (country) {
  for (var i = 0; i < country.length; i++) {

  DataExtractor.StartNewResult();
  DataExtractor.AddResult(1, country[i]);
   }
   }

运行时它给了我标题中的错误。任何人都可以阐明我所缺少的东西吗?

谢谢

4

2 回答 2

2

您是否检查过 tmp 是否为数组?试试下面的片段:

var country
if( tmp ){
country = tmp[1]
}else{
alert('tmp is not set')
}
于 2013-05-19T08:41:35.297 回答
0

我相信您的 tmp 变量为空,因为您的正则表达式无法匹配任何内容。

你也应该在你的正则表达式参数中包含'g',意思是//ig。Bcoz 你期待不止一场比赛。还通过检查长度是否真的等于或大于两个等来使用防御性程序。

于 2013-05-19T09:23:44.243 回答