我需要检查一个字符串,最后符号是强制性的,首先是' @'第二个是用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中应用它的原因和位置。
答案 0 :(得分:2)
$
表示输入字符串的结尾,因此您需要在它之前添加变量值。为此,您必须使用显式Regexp对象而不是简化版本。请尝试以下方法:
var t = 0;
var p = new RegExp("^[a-z0-9A-Z_-]*@" + t + "$");
答案 1 :(得分:0)
你在那个正则表达式中有什么反斜杠?我假设其中一些被解释为字符,并且它们不在您的测试字符串中。如果你删除它们,它就可以正常工作。