匹配 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 的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章