我正在尝试编写javascript来验证网格坐标的表单值。
网格有A到H和1到8,坐标写成字母,后面跟着数字例如。"A1","H8",“B6,F3”。
有人能不能给我一个判据,排除那个范围内的坐标以外的任何东西。
我尝试了以下几点:
/^[A-H][1-8]$/基于我有限的regex知识,但这还没有实现
发布于 2021-03-25 09:13:20
您的regexp看起来是正确的,您可能希望以这样的方式使它更健壮:/^\s*[A-H][1-8]\s*$/
这应该与"A6“或"B7”这样的东西相匹配,即使在开头或结尾都有空格。
测试regexp的一个非常有用的工具是:https://regex101.com/
发布于 2021-03-25 09:43:00
当然,您的字符串以"A"- "H“后面的"1”- "8“开头,正确的说法是^[A-H][1-8],但是可能会有更多的内容。所以您可以编写一个.*来允许一些。要获得这个内容,请在(和)之间编写它来构建一个组。
^[A-H][1-8](.*)$如果一行匹配,则可以在第一个组的$1之外获取范围后面的内容。请确保,您的regex工作大小写敏感!
如果要防止与另一个范围匹配行(如"B4 foo Bar bAz D7 xxx“),则需要查找:
^[A-H][1-8]((?:(?![A-H][1-6]).)*)$

https://stackoverflow.com/questions/66796224
复制相似问题