【发布时间】:2011-06-01 15:16:42
【问题描述】:
我正在使用 HTML/CSS/PHP 开发一个基于国际象棋的爱好项目。我事先对国际象棋并不熟悉,所以我决定制作一个工具,它可以根据给定棋子的类型和方格显示允许的走法。
我有一个带有两个文本字段的 HTML 表单:一个用于块的类型,另一个用于所述块的当前方块。一切正常,但我想使用正则表达式进行验证。
棋子类型的有效、不区分大小写的输入是p、pawn、r、rook、b、bishop、n、knight、q、queen、k、king。
正方形的有效、不区分大小写的输入是 LetterNumber,其中 Letter 可以是 A-H 和 Number可以是1-8。
所以我想知道使用正则表达式是否可能/实用,如果是这样,谁能告诉我它们是什么?我在想我应该只使用带有逻辑或的条件语句作为片段类型,但我很想知道是否有其他解决方案。
【问题讨论】:
-
如果您已经在分隔输入字段,我不建议使用正则表达式。分别验证棋子和方子要简单得多。
-
一个数字1-8怎么能表达一个位置呢?不应该是字母-数字-数字吗?
-
@mihsathe 我正在使用
str_split()函数来分割假设用户输入表单的正方形。我有一个函数,它接受字母部分(例如“C4),它代表文件/列,并将字母转换为相应的列号(例如3)。我这样做的原因是使其遵循国际象棋惯例,即您会说并将其视为“C4”而不是“3-4”。 -
@Jason McCreary 这就是我的假设,但感谢您的确认。
-
再次感谢所有回复的人。我还没有进行任何客户端验证并且有一些问题,但如果有人对我所拥有的内容感兴趣,请查看:freemusing.com/chess