我正在尝试从字符串中提取特定数字,但我不确定如何执行它。
字符串的格式为:
center=43.571464,7.129565&zoom=12&size=480x225&markers=color:red%7Clabel:1%7C43.580293713725936,7.115145444335894&markers=color:red%7Clabel:2%7C43.56512073056565,7.121668576660113&sensor=false
我想要的数组是接近结尾的标记坐标,具体为:
[43.580293713725936,7.115145444335894,43.56512073056565,7.121668576660113]
我以为我可以使用他们的精确度来选择这些数字(15),但我不知道这是否是最好的。在使用正则表达式时,我是一个黑客。现在我得到的最好的是:
str.match(/[-+]?[0-9]*\.?[0-9]+/g)
但这只是给了我所有数字。
非常感谢!
答案 0 :(得分:1)
如果您的字符串位于str
,请使用此正则表达式。
var coordinates = decodeURIComponent(str).match(/([\d.]{10,})/g);
答案 1 :(得分:1)
您可以尝试使用以下正则表达式
/\d+\.\d{7,}/g
这假定:
示例(JSFiddle):
str.match(/\d+\.\d{7,}/g);
我选择7的原因是因为样本中的其他数字有6个,因此将它们排除在外。如果您知道坐标始终具有固定的小数位数,那么您可以使用该特定数字而不使用,
,如下所示:
/\s+\.\d{10}/g