Lat/Long 掩码正/负检测

Posted

技术标签:

【中文标题】Lat/Long 掩码正/负检测【英文标题】:Lat/Long mask positive/negative detection 【发布时间】:2021-09-29 03:10:16 【问题描述】:

大家好,我正在尝试为我的 2 个输入框 创建一个 蒙版,该输入框将容纳 latitudelongitude强>。

考虑到纬度可以是正数或负数经度也是如此。问题是我正在尝试提出一个 regex,它可以让用户能够首先选择它是正数还是负数,然后 g 用户使用 (-/+)XXX.XXXXXX 的掩码

但是,我并没有太接近结论,所以我请求一些帮助以实现该目标。

我已经设置了一个 JSFiddle 到目前为止,这并不多,以存档我的目标。

$('.mask').inputmask(
    regex: String.raw `^[-/*][0-9]3[.][0-9]7$`
);

上面的代码适用于负数,但是当输入 100. 时,它只是坐在那里,因为它等待 - 才能开始。我认为添加 * 它将允许它输入一个正数。以上应该允许用户以-XXX.XXXXXXXXX.XXXXXXX的格式输入。

我仍然需要弄清楚如何判断第一部分 (xxx.) 何时只有 1 或 2 位而不是 3,这使得用户必须在所述数字前输入 0。

所以有效的输入应该是这样的:

-2.984593 而不是 -002.984593

-74.192822 而不是 -074.192822

-102.738631

7.653721 而不是 +007.653721

10.746633 而不是 +010.746633

110.938365

如何格式化才能按我的需要工作?

【问题讨论】:

【参考方案1】:

您可以简单地将破折号设为可选:

^-?\d3\.\d7$

我冒昧地重构了您的 RegEx 模式([0-9] -> \d[.] -> \.)。

至于允许第一部分为一位数或两位数,您可以使用:

^-?\d1,3\.\d7$

【讨论】:

这些都不允许您键入 25.xxxxxxx 或 2.xxxxxxx 而不必在数字前面加 0 (025.xxxxxxx和 002.xxxxxxx) 您对问题的措辞方式使它看起来像是您希望的行为。如果您想允许小数点前少于三位,请参阅编辑。

以上是关于Lat/Long 掩码正/负检测的主要内容,如果未能解决你的问题,请参考以下文章

Opencv检测边界和ROI掩码

无法获得所需的掩码检测输出

使用元掩码时检测 web3 默认帐户的更好模式

使用固定的 SKPhysicsJoint 将作为孩子的平台检测命中框附加到玩家精灵会更改玩家的碰撞和检测位掩码

使用固定的SKPhysicsJoint将平台检测命中框作为子项附加到玩家精灵更改玩家的碰撞和检测位掩码

SpriteKit 碰撞检测不起作用