从我的应用程序的后端,我收到一个正则表达式,该表达式应与前端的邮政编码相匹配。
但是,每次使用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)
您的输入字符串不能以正则表达式标记/
开头和结尾 - 毕竟,它是常规字符串,而不是文字正则表达式。此外,由于它是一个常规字符串(而不是(还)一个正则表达式),您需要像往常一样在常规字符串中加倍反斜杠。