2015-10-20 56 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