在Javascript中将字符串转换为正则表达式

时间:2016-01-10 12:16:12

标签: javascript regex

从我的应用程序的后端,我收到一个正则表达式,该表达式应与前端的邮政编码相匹配。

但是,每次使用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})?$/);

有人可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您的输入字符串不能以正则表达式标记/开头和结尾 - 毕竟,它是常规字符串,而不是文字正则表达式。此外,由于它是一个常规字符串(而不是(还)一个正则表达式),您需要像往常一样在常规字符串中加倍反斜杠。