2016-01-10 48 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

相关问题