如何更改正则表达式以获得所需的正则表达式?

时间:2014-07-30 13:06:52

标签: javascript regex string

我需要检查一个字符串,最后符号是强制性的,首先是' @'第二个是用t变量给出的。

我有这个:

var t = 0;
var p = /^[a-z0-9A-Z_-]*@$/ + t.toString();

p.test("asdf2@0");

并始终' false'

如何将t String添加到p变量的RegExp

现在,我搜索了一下,发现人们确实使用了RegExp构造函数:

var t = 0;
var re = new RegExp("^\/\\[a-z0-9A-Z_-]*@" + t.toString() + "\/\\$");
var z = re.test("asdf2@0");

在这种情况下,z始终是“假”'

我做错了什么?您能否解释一下\究竟是什么意思,以及在RegExp中应用它的原因和位置。

2 个答案:

答案 0 :(得分:2)

$表示输入字符串的结尾,因此您需要在它之前添加变量值。为此,您必须使用显式Regexp对象而不是简化版本。请尝试以下方法:

var t = 0;
var p = new RegExp("^[a-z0-9A-Z_-]*@" + t + "$");

答案 1 :(得分:0)

你在那个正则表达式中有什么反斜杠?我假设其中一些被解释为字符,并且它们不在您的测试字符串中。如果你删除它们,它就可以正常工作。