2017-04-24 17 views
1

我有一個電子郵件正則表達式,我一直在使用JavaScript和正常工作,但是當我嘗試在Coldfusion中使用它時,我得到一個錯誤。正則表達式在ColdFusion中拋出錯誤,但在JS中工作

的正則表達式是:

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

我得到的錯誤是:

的CFML編譯器是處理:

的表達式開始與/」,在線路28上,柱16 。此消息通常是由表達式結構中的問題導致的 。一個CFSET標籤 開始第28行,第2列。

這似乎是在抱怨/但我已經逃脫它\/。此外,據我所知,它不在第16列。當我在/之前或之後添加字符時,行號不會改變。例如,如果我將字符添加到變量名稱中,

我試過了,沒有逃避反斜槓,在/.../和parens (^....$)附上正則表達式。

正則表達式應該全字匹配一個有效的電子郵件地址,如[email protected][email protected]

如果有空格或無效字符,如它不會匹配:[email protected]@email.com' [email protected] ',或[email protected]

有沒有人看到我的錯誤在哪裏?

+2

做到這一點,你需要躲避哈希''#在''^ [A-ZA-Z0-9!## \ $'。 – Alex

回答

2

在ColdFusion中,您需要跳過#。您可以通過添加連續##

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

是的,就是這樣!我只是偶然發現了它,並要更新:) – littlewolf

相關問題