2016-01-10 90 views
0

從我的應用程序的後端,我收到一個正則表達式,該正則表達式應與前端中的郵政編碼匹配。在Javascript中將字符串轉換爲正則表達式

但是,每次使用RegExp類將字符串轉換爲正則表達式時,我都會得到另一個不匹配郵政編碼的正則表達式。

這是我目前使用(從我的控制檯複印件)代碼:

var str = '/^[1-9][0-9]{3}\s?([a-zA-Z]{2})?$/', 
exp = new RegExp(str); 

// Returns null 
'1055AA'.match(exp); 

// The code below does work though... 
// Returns: ["1055AA", "AA"] 
'1055AA'.match(/^[1-9][0-9]{3}\s?([a-zA-Z]{2})?$/); 

有人可以幫我解決這個問題?謝謝!

+0

逃避反斜槓。 ''/^[1-9] [0-9] {3} \\ s?([a-zA-Z] {2})?$ /'' – Tushar

回答

1

您的輸入字符串不得以正則表達式標記開始和結束/ - 畢竟,它是一個常規字符串,而不是文字正則表達式。另外,由於它是一個常規字符串(而不是正則表達式),因此您需要像往常一樣使用正常字符串來加倍反斜槓。

+1

早上好,Teej。 Yeesh。閱讀權利過去他們。如果您認爲我現在刪除的任何答案對添加都很有用,請隨時獲取。 –

+0

謝謝!這幫了很多:) – Vernon

相關問題