【发布时间】:2016-01-16 12:06:14
【问题描述】:
我正在尝试允许用户注册一个仅包含字母(任何语言)、数字或连字符的用户名。我正在尝试检查用户名是否违反此规则。
到目前为止,我们正在确定用户名是否不仅包含字母数字字符:
REFindNoCase('^[[:alnum:]]', ARGUMENTS.Username)
这很好,因为如果我得到一个找到的结果,那么我知道它是一个无效的用户名格式,其中包含特殊字符。但我也想允许连字符通过。我怎么能用正则表达式表达(伪代码如下):
REFindNoCase('^[[:alnum:]\-]', ARGUMENTS.Username)
我只能使用与 Perl 兼容的 Regex,因为我使用的 ColdFusion 主要使用该标准。
【问题讨论】:
-
PCRE 不是 Perl。固定标签。
-
@ikegami ColdFusion 支持仅与 Perl 兼容的正则表达式
-
那是不可能的。它可能使用与 Perl 不同的“Perl 兼容正则表达式”(PCRE)引擎。
-
@ikegami:正确。 CF 使用 Apache ORO,这是一个(非常老旧的)PCRE 实现。
标签: regex coldfusion pcre