jquery正则表达式测试一个变量是否以另一个变量开头

时间:2014-03-04 18:59:26

标签: javascript jquery

我想测试一个变量是否以另一个变量开头。 即Var1以Var2开头

regex = '/^'+var1+'/i';

if(regex.match(var2)){
return true
}

永远不会返回true。

感谢您的帮助。

4 个答案:

答案 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