2010-10-28 65 views
0

我有以下的正則表達式這是在Java代碼中正則表達式中的Java代碼工作,但在JavaScript代碼

[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])? 

但同樣做工精細沒有在Java腳本

工作不工作任何一個可以請告訴我這

感謝陽光伴侶的解決方案

+1

你可以發佈你當前的JavaScript代碼解釋預期的結果和實際結果嗎? – 2010-10-28 09:29:25

+0

請使用代碼塊並以正確的方式逃避正則表達式,以使其顯示正確 – joni 2010-10-28 09:29:57

回答

0

正則表達式是每種編程語言略有不同,請參考日電子手冊/文件。

2

我把最後一個連字符從這些組的第一個字符:

Before: 
[A-Za-z0-9!#$%&'*+/=?^_`{|}~-] 
After: 
[-A-Za-z0-9!#$%&'*+/=?^_`{|}~] 

連字符將允許範圍內的字符。如果它是該集合的第一個字符,它將被視爲連字符。否則,它可能意味着「從'〜'直到']'」

但是,如果沒有確切的問題,很難回答。

編輯: 我測試過在這個simple JavaScript RegEx tester表達,我發現它的目的是匹配的電子郵件地址。它在我用單個文件\替換了雙反斜槓\\之後對我有用。

在JavaScript中,以下兩個應該工作一樣:

var re = /a\.c/; 
var re = new RegExp("a\\.c"); 

但第二個需要雙回斜線,因爲它是封閉在一個字符串,它需要逃逸。如果一切都失敗,請檢查Mozilla Developer Center

但是,再次,如果沒有確切的問題,就不可能給出準確的答案。更重要的是,當你試圖改善你的問題時,你很可能會發現你的錯誤。