REGEX在ColdFusion中引发错误,但在JS中起作用



我有一个我在javaScript中使用的电子邮件正则是且工作正常,但是当我尝试在ColdFusion中使用它时,我会出现错误。

正则是:

<cfset regex = '^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:(.[a-zA-Z0-9-]+)+)+$'>

我遇到的错误是:

CFML编译器正在处理:

以/'开头的表达式第28行,第16列。此消息是 通常是由表达结构中的问题引起的。CFSET标签 从第28行,第2列开始。

似乎在抱怨/,但我已经逃脱了/。此外,据我所知,它不在第16列上。当我在/之前或之后添加字符时,行号不会更改。例如,如果我将字符添加到变量名称中,则可以。

我尝试过有没有逃脱的后斜线,将正则态度封闭在/.../和Parens (^....$)中。

正则应与整个单词匹配有效的电子邮件地址,例如sample@me.comanother@some.sub.net等。

如果有空格或无效字符,例如: not@valid@email.com' toomuch@space.com 'wrong.pattern@foo

,它将不匹配。

有人看到我的错误在哪里?

在ColdFusion中,您需要逃脱#。您可以通过添加连续的##

来做到这一点
<cfset regex = '^[a-zA-Z0-9.!##$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:(.[a-zA-Z0-9-]+)+)+$'>

相关内容

最新更新