【问题标题】:Regex throws error in Coldfusion but works in JS正则表达式在 Coldfusion 中抛出错误,但在 JS 中有效
【发布时间】:2017-04-25 03:05:04
【问题描述】:

我有一个电子邮件正则表达式,我一直在 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,则不匹配

有人知道我的错误在哪里吗?

【问题讨论】:

  • 你需要像'^[a-zA-Z0-9.!##\$一样转义哈希#

标签: regex coldfusion


【解决方案1】:

在 ColdFusion 中,您需要转义 #。你可以通过添加连续的##来做到这一点

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

【讨论】:

  • 是的,就是这样!我自己偶然发现它并打算更新:)
猜你喜欢
  • 1970-01-01
  • 2020-05-16
  • 2022-01-08
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
相关资源
最近更新 更多