匹配 Google 地球 URL 的正则表达式

Posted

技术标签:

【中文标题】匹配 Google 地球 URL 的正则表达式【英文标题】:Regular expression to match Google earth URLs 【发布时间】:2022-01-22 15:30:15 【问题描述】:

我正在尝试获取一个正则表达式,以验证用户在表单中输入的 url 是否是有效的 google earth url。例如https://earth.google.com/web/@18.2209311,-63.06963893,-0.67163554a,2356.53661597d,34.99999967y,358.1303302h,0t,0r

我尝试使用js和html进行验证,但在这里不起作用的是我目前拥有的正则表达式函数

var urlRegex = /^(ht|f)tps?:\/\/[a-z0-9-\.]+\.[a-z]2,4\/?([^\s<>\#%"\,\\\\|\\\^\[\]`]+)?$/;
var earthRegex = /earth.google.com/;

在函数中我有这个:

if ((linkInUrl !== '-') && !(urlRegex.test(linkInUrl) && earthRegex.test(linkInUrl))) return '请输入有效的链接 URL';

【问题讨论】:

URL 末尾的长 CSV 字符串在您提供的示例中具有 六个 组件。您是否希望每个 URL 都具有相同格式的相同组件? 是的,这是 url @TimBiegeleisen 中预期的示例 【参考方案1】:

您可以尝试使用以下正则表达式模式:

(?:ht|f)tps?:\/\/earth\.google\.com\/web\/@-?\d+(?:\.\d+)?,-\d+(?:\.\d+)?,-?\d+(?:\.\d+)?a,-?\d+(?:\.\d+)?d,-?\d+(?:\.\d+)?y,-?\d+(?:\.\d+)?h,\d+t,\d+r

完整的解释可能太长了,但是 URL 末尾的每个 CSV 组件通常使用类似 -?\d+(?:\.\d+)? 的东西来匹配,这将匹配一个正/负整数/浮点数。

【讨论】:

以上是关于匹配 Google 地球 URL 的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

来自 URL 的正则表达式 URL 路径

正则表达式匹配URL

JAVA 中的网站/URL 验证正则表达式

如何用js匹配url的正则表达式

php 正则表达式 url匹配

java匹配url的正则表达式