我有一个我在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.com
,another@some.sub.net
等。
如果有空格或无效字符,例如:not@valid@email.com
,' toomuch@space.com '
或wrong.pattern@foo
有人看到我的错误在哪里吗?
答案 0 :(得分:2)
在ColdFusion中,您需要转义#
。您可以通过添加连续的##
<cfset regex = '^[a-zA-Z0-9.!##\$%&’*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:(\.[a-zA-Z0-9-]+)+)+$'>