Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从大HTML文件中提取javascript变量_Javascript_Ruby_Regex - Fatal编程技术网

从大HTML文件中提取javascript变量

从大HTML文件中提取javascript变量,javascript,ruby,regex,Javascript,Ruby,Regex,我有一个巨大的带有javascript的HTML源文件,我想从javascript内容中提取一些信息。考虑到我有一个如下的文件 <h1>Hello World</h1> <script type="text/javascript">something useless</script> <script type="text/javascript">var gmaps_vars = {FullAddress: "Rio de Janeiro

我有一个巨大的带有javascript的HTML源文件,我想从javascript内容中提取一些信息。考虑到我有一个如下的文件

<h1>Hello World</h1>
<script type="text/javascript">something useless</script>
<script type="text/javascript">var gmaps_vars = {FullAddress: "Rio de Janeiro, Rio de Janeiro, Brasil", GeoLocation: {"lng":-43.187554,"lat":-22.9470974}}</script>
你好,世界
无用的东西
var gmaps_vars={完整地址:“里约热内卢,里约热内卢,巴西”,地理位置:{“lng”:-43.187554,“lat”:-22.9470974}

如何提取纬度和经度?

使用正则表达式如何:

m = /GeoLocation: \{"lng":(-?\d+\.\d+),"lat":(-?\d+\.\d+)\}/.match(html)
lng = m[1]
lat = m[2]
试一试

html


jsfiddle

获取var是什么意思?我已经更新了我真正需要的示例。一开始我试着太笼统了。:)
<h1>Hello World</h1>
<script type="text/javascript">var a;</script>
<script type="text/javascript" id="vars">var gmaps_vars = {"FullAddress": "Rio de Janeiro, Rio de Janeiro, Brasil", "GeoLocation": {"lng":-43.187554,"lat":-22.9470974}}</script>
$(function() {
    var coords = [];
    $.post(url, function(data, textStatus, jqxhr) {
        $.each($(data), function(index, value) {
            if ($(value).is("#vars")) {
              coords.push(JSON.parse($(value).text().replace(/var|gmaps_vars|\=/g, "")).GeoLocation);
              console.log(coords[0].lng + "\n" + coords[0].lat);
            };
        });
    });
});