javascript - 正则表达式接受从 0 到 168 的所有小数,后跟 N 或 S
问题描述
我必须建立一个常规的 exp,它将接受从 0 到 168 的所有数字,后跟“N”或“S”。
我准备了以下常规 exp,除了将 168.11 视为有效输入外,它工作正常。
常规经验:
/\b([1-9]|[1-9][0-9]|1[01][0-9]|16[0-8])(\.\d{1,2})?[N,S]?$/
有效的:
168S
11.2
10
140
125N
130S
3S
3.2
168.00S
无效的:
168.11
168.12S
168.12N
谁能建议我缺少什么?谢谢!
解决方案
您可以将此正则表达式与可选匹配项一起使用:
^\s*(?:(?:\d|[1-9]\d|1[0-5]\d|16[0-7])(?:\.\d{1,2})?|168(?:\.0{1,2})?)[NS]?$
正则表达式详细信息:
^\s*
: 在开始时匹配 0 个或多个水平空格(?:
: 启动非捕获组 #1(?:
:启动非捕获组#2\d
: 一位数到数字 from0
to9
|
: 或者[1-9]\d
: 匹配数字从10
到99
|
: 或者1[0-5]\d
: 匹配数字从100
到159
|
: 或者16[0-7]
: 匹配数字从160
到167
)
: 结束非捕获组 #2(?:\.\d{1,2})?
: 匹配可选的小数点后跟 1 或 2 位数字|
: 或者168
: 匹配168
(?:\.0{1,2})?
:匹配可选.0
或.00
)
: 结束非捕获组#1[NS]?
: 匹配可选N
或S
结束前$
: 结尾
推荐阅读
- docker - 来自 sysinternals 的 Sigcheck 未在 Windows 容器 Docker 中运行
- java - 我应该如何使用 getResource()?
- android - resources.getIdentifier() 总是为发布 apk 返回 0
- batch-file - 记录由另一个窗口打开的 cmd 窗口的输出
- firebase - Firebase 云功能异常缓慢
- php - add_filter WordPress 中的警报
- symfony - Symfony 4.0 为实体管理器“default”中的缓存“result_cache”配置的“array”类型的未知缓存
- google-cloud-platform - 从 Cloud Endpoint 调用托管在 Cloud Storage 上的静态 Html 时出现错误 401
- javascript - 简单数组的JS冒泡排序
- javascript - Supertest:如何为发布到另一个 API 端点的 API 端点编写测试?