2013-02-02 61 views
0

我遇到了最困难的时间,正则表达式地址提取

我有以下的HTML我想出来的

<span style="border-color: rgb(0, 0, 255); border-width: 2px; border-style: solid;"     class="addr">  100 E Faith Ter<br>   <span class="locality">Maitland</span>,      <span class="region">FL</span>   <span class="postal-code">32751</span>     </span>l-code">32751</span>   </span> 

来解析地址“100 E信仰之三”我“米试图在这个网站通过以上这组代码,我“M没有得到比赛,我不明白为什么即使我尝试在正则表达式测试仪和它的作品。我要疯了。

function demoShowMatchClick(addressToPull) { 
     var re = new RegExp("\s{5}(.*?<br>)"); 
     var m = re.exec(addressToPull); 
     if (m == null) { 
     alert("No match"); 
     } else { 
     var s = "Match at position " + m.index + ":\n"; 
     for (i = 0; i < m.length; i++) { 
      s = s + m[i] + "\n"; 
     } 
     alert(s); 
     } 
    } 

缺少什么我在这里?

+0

见我的回答,我我不确定这是一个好主意,可以匹配一定数量的空白空间。 – Joel

+0

用正则表达式解析HTML,我们? –

回答

0

这个工作对我:

var re = new RegExp("\\s{5}(.*?<br>)"); 

逃离\ S

如果使用正则表达式字面语法,你不必担心字符串转义:但是

var re = /\s{5}(.*?<br>)/ 
+0

谢谢。除了现在因为某种原因,我得到了这个函数的地址的两倍。 100 E Faith Ter
,100 E Faith Ter
function demoShowMatchClick(addressToPull)var re = /\s{5}(.*?
)/; var m = re.exec(addressToPull); return m; – user2033816

0
you have to make following changes in your function 

function demoShowMatchClick(addressToPull) { 
     var re = \s{5}(.*?<br>); 
     var m = re.exec(addressToPull); 
     if (re.test(addressToPull)) { 
     var s = "Match at position " + m.index + ":\n"; 
     for (i = 0; i < m.length; i++) { 
      s = s + m[i] + "\n"; 
      alert(s); 
     } else { 

      alert("No match"); 
     } 

     } 
    }