首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一定范围内精确表示一个大写字母和一个数字的正则表达式

在一定范围内精确表示一个大写字母和一个数字的正则表达式
EN

Stack Overflow用户
提问于 2021-03-25 09:08:52
回答 2查看 97关注 0票数 1

我正在尝试编写javascript来验证网格坐标的表单值。

网格有A到H和1到8,坐标写成字母,后面跟着数字例如。"A1","H8",“B6,F3”。

有人能不能给我一个判据,排除那个范围内的坐标以外的任何东西。

我尝试了以下几点:

代码语言:javascript
复制
/^[A-H][1-8]$/

基于我有限的regex知识,但这还没有实现

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-25 09:13:20

您的regexp看起来是正确的,您可能希望以这样的方式使它更健壮:/^\s*[A-H][1-8]\s*$/

这应该与"A6“或"B7”这样的东西相匹配,即使在开头或结尾都有空格。

测试regexp的一个非常有用的工具是:https://regex101.com/

票数 3
EN

Stack Overflow用户

发布于 2021-03-25 09:43:00

当然,您的字符串以"A"- "H“后面的"1”- "8“开头,正确的说法是^[A-H][1-8],但是可能会有更多的内容。所以您可以编写一个.*来允许一些。要获得这个内容,请在()之间编写它来构建一个组。

代码语言:javascript
复制
^[A-H][1-8](.*)$

如果一行匹配,则可以在第一个组的$1之外获取范围后面的内容。请确保,您的regex工作大小写敏感!

如果要防止与另一个范围匹配行(如"B4 foo Bar bAz D7 xxx“),则需要查找:

代码语言:javascript
复制
^[A-H][1-8]((?:(?![A-H][1-6]).)*)$

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66796224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档