2015-10-20 39 views
0

HTML页面中,我想选择一个javascript变量的值。以下是HTML页面的片段。用Java解析JavaScript

<script type="text/javascript"> 
$(function() { 
    $.ajaxSetup({ 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader('X-MOON-EXPIRED', "1445350653"); 
     xhr.setRequestHeader('X-MOON-TOKEN', "10dafe974cc156d2d3b7fd9bb1e4e3ed"); 
    } 
    }); 
}); 
</script> 

我的目标是使用Java此页面读取变量X-MOON-EXPIREDX-MOON-TOKEN的价值。谢谢。

+0

*您威力*能够通过这里与正则表达式或收获的人。 –

+2

[Javascript解析器for Java]可能的重复(http://stackoverflow.com/questions/6511556/javascript-parser-for-java) –

+0

JavaScript上的页面是否属于您,或者您是否刮掉它别人的页面? – mwarren

回答

2
import java.util.regex.*; 
Pattern p1 = Pattern.compile("X-MOON-EXPIRED', \"([^\"]*)\""); 
Pattern p2 = Pattern.compile("X-MOON-TOKEN', \"([^\"]*)\""); 
String html = "<script type=\"text/javascript\"> $(function() { $.ajaxSetup({  beforeSend: function(xhr) {  xhr.setRequestHeader('X-MOON-EXPIRED', \"1445350653\");  xhr.setRequestHeader('X-MOON-TOKEN', \"10dafe974cc156d2d3b7fd9bb1e4e3ed\");  } }); }); </script>"; 
Matcher m1 = p1.matcher(html); 
Matcher m2 = p2.matcher(html); 
if (!m1.find() || !m2.find()) { 
    throw new Exception("Didn't match"); 
} 
System.out.println(String.format("X-MOON-EXPIRED=%s, X-MOON-TOKEN=%s", m1.group(1), m2.group(1))); 

打印:

X-MOON-EXPIRED=1445350653 X-MOON-TOKEN=10dafe974cc156d2d3b7fd9bb1e4e3ed