对于表单上的安全问题,我希望用户输入4
orfour
或后者的任何变体。
现在我有这个正则表达式/\b4|four\b/gi
,它是我在这个网站上找到的一个变体。问题是用户可以输入458
什么的。那么,有人可以帮帮我吗?
对于表单上的安全问题,我希望用户输入4
orfour
或后者的任何变体。
现在我有这个正则表达式/\b4|four\b/gi
,它是我在这个网站上找到的一个变体。问题是用户可以输入458
什么的。那么,有人可以帮帮我吗?
我不确定您所说的“后者的任何变化”是什么意思,但是:
/^(4|four)$/i
将匹配 4 或 4 的整个字符串。比赛^
只在开始和$
结束时进行。/i
表示不区分大小写(因此也可以接受 FOUR)。有些语言不采用这样的标志(在它们中,您必须查看有关如何进行不敏感匹配的文档)。如果你不能使用不区分大小写的匹配,你可以这样做:
/^(4|[fF][oO][uU][rR])$/i
当然,无论您使用什么语言,都可能有相等比较。所以你可以这样做(例如)
if (str == "4" || str == "four")
因此,您应该为此使用不区分大小写的比较。一些(也许是大多数)正则表达式风格将支持(?i)
表示不区分大小写的模式。
^(?i)(?:4|four)$
但是,如果这是 JavaScript,那么您可以使用更像您开始使用的语法...
/^(?:4|four)$/i
在这种情况下,这/i
是不区分大小写的。但我删除/g
了,因为它是用于全局匹配的,这里不需要。
请注意,我也放入4|four
了一个(?:non capturing)
组。(capturing)
当您不需要对捕获的值执行任何操作时,这比使用传统组更有效。
然后围绕所有内容的^
和$
锚点将确保您没有额外的前导或后续字符。