我想测试一个变量是否以另一个变量开头。 即Var1以Var2开头
regex = '/^'+var1+'/i';
if(regex.match(var2)){
return true
}
永远不会返回true。
感谢您的帮助。
答案 0 :(得分:1)
你的正则表达式变量是一个字符串,而不是正则表达式。您可以使用/^foo/
构建文字RegExp实例,但要动态地执行它,您必须像这样构造它:
var regex = new RegExp('^'+var1, 'i' );
答案 1 :(得分:1)
您想要的是创建动态regExp模式。有可能的。您必须在“new RegExp()”对象中添加它们,以便为匹配生成正确的字符串。检查这个其他stakoverflow帖子: set dynamic pattern in Regexp
答案 2 :(得分:1)
除了使用.substring
,这将更容易,你不能通过字符串连接创建一个正则表达式。你所做的就是制作一个字符串。你需要的是:
regex = new RegEx('^'+var1, "i");
if(var2.match(regex)){
return true
}
/foo/
表示法专门用于在javascript中定义正则表达式,而不是字符串。它不应该用引号(单引号或双引号)括起来,因为它不是一个字符串,你不能用字符串连接它。
regex = "/foo/" // this is a string not a regex
regex = / + "foo" + / // this doesn't work either
regex = /foo/ // this is a regex, but it's static
如果您需要创建动态正则表达式,则需要使用new RegEx
构造函数。
答案 3 :(得分:0)
这应该有效
var1.substring(0, var2.length) === var2
示例:
var var1 = "redV", var2 = "red";
var1.substring(0, var2.length) === var2 // Returns true
var var1 = "redV", var2 = "Vred";
var1.substring(0, var2.length) === var2 // Returns false