解析文本坐标



我喜欢从此文本中提取坐标:

Text
492k | 505k auf Punkt
https://www.seite.com/map?ll=30.123456,21.123456
Text
83k | 1,8 Mio auf Punkt
https://www.seite.com/map?ll=11.146724,27.427684
Text
82k | 121k auf Punkt
https://www.seite.com/map?ll=24.142451,36.127474
Text
20k | 65k auf Punkt
https://www.seite.com/map?ll=26.241442,16.323624
Text
11k | 93 auf Punkt
https://www.seite.com/map?ll=47.139682,14.124675

我已经尝试过,但是效果不佳:https://jsfiddle.net/pnyqrgfz/结果应该是这样:

30.123456,21.123456
11.146724,27.427684
24.142451,36.127474
26.241442,16.323624
47.139682,14.124675

这个简短的解决方案呢:

var source = 'https://www.seite.com/map?ll=30.123456,21.123456';
var pattern = /[0-9]+.[0-9]+/g;
source.match(pattern);

输出:

["30.123456", "21.123456"]

带有完整输入和长输入的示例:

https://regex101.com/r/5fxaw8/1

您可以使用以下

function parse () 
{
	var lines = $("#textarea_input").val().split('n');
	var coords = [];
	for(var i = 0;i < lines.length;i++)
	{
		//code here using lines[i] which will give you each line
		var m = lines[i].match(/d{1,2}.d+,d{1,2}.d+/);
		console.log(lines[i]);
		console.log('i:' + i + ' - ' + m);
		if (m != null)
		{
			coords.push(m);
			console.log(m);
		}
	}
	for(var i = 0;i < coords.length;i++)
	{
		//console.log(coords);
		$('#textarea_output').val($('#textarea_output').val()+coords[i]+'n'); 
	}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="textarea_input" rows="15" cols="55">Text
492k | 505k auf Punkt
https://www.seite.com/map?ll=30.123456,21.123456
Text
83k | 1,8 Mio auf Punkt
https://www.seite.com/map?ll=11.146724,27.427684
Text
82k | 121k auf Punkt
https://www.seite.com/map?ll=24.142451,36.127474
Text
20k | 65k auf Punkt
https://www.seite.com/map?ll=26.241442,16.323624
Text
11k | 93 auf Punkt
https://www.seite.com/map?ll=47.139682,14.124675</textarea>
	<input type = "button" onclick = "parse();"/>
	<textarea id="textarea_output" rows="15" cols="55"></textarea>

您可以做到这一点:

function parse () 
{
	var lines = $("#textarea_input").val().split('n');
	var coords = [];
	for(var i = 0;i < lines.length;i++)
	{
		//code here using lines[i] which will give you each line
    if(lines[i].indexOf('?ll=') !== -1){
    	var lineArr = lines[i].split('?ll='); 
      if(lineArr.length!==0){
        var splitCords = lineArr[1].split(',');
        coords.push(splitCords[0]);
        coords.push(splitCords[1]);
      }
    }
	}
	for(var i = 0;i < coords.length;i++)
	{
		//console.log(coords);
  var newLine = '';
  var comma = ','
	if(i%2 !== 0){
    newLine='n';
    comma = '';
  }  
  
  $('#textarea_output').val($('#textarea_output').val()+coords[i]+comma+newLine); 
	}
}
parse();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
	
	<textarea id="textarea_input" rows="15" cols="55">Text
492k | 505k auf Punkt
https://www.seite.com/map?ll=30.123456,21.123456
Text
83k | 1,8 Mio auf Punkt
https://www.seite.com/map?ll=11.146724,27.427684
Text
82k | 121k auf Punkt
https://www.seite.com/map?ll=24.142451,36.127474
Text
20k | 65k auf Punkt
https://www.seite.com/map?ll=26.241442,16.323624
Text
11k | 93 auf Punkt
https://www.seite.com/map?ll=47.139682,14.124675</textarea>
	<input type = "button" onclick = "parse();"/>
	<textarea id="textarea_output" rows="15" cols="55"></textarea>

利用split()功能,它运行良好。

最新更新