Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery regex测试一个变量是否以另一个变量开头_Javascript_Jquery - Fatal编程技术网

Javascript jquery regex测试一个变量是否以另一个变量开头

Javascript jquery regex测试一个变量是否以另一个变量开头,javascript,jquery,Javascript,Jquery,我想测试一个变量是否以另一个变量开头。 i、 e如果Var1以Var2开头 regex = '/^'+var1+'/i'; if(regex.match(var2)){ return true } 永远不会回到现实 谢谢你的帮助。这应该行得通 var1.substring(0, var2.length) === var2 例如: var var1 = "redV", var2 = "red"; var1.substring(0, var2.length) === var2 // Retur

我想测试一个变量是否以另一个变量开头。 i、 e如果Var1以Var2开头

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

if(regex.match(var2)){
return true
}
永远不会回到现实

谢谢你的帮助。

这应该行得通

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

正则表达式变量是字符串,而不是正则表达式。您可以使用
/^foo/
构造literal RegExp实例,但要动态执行此操作,您必须像这样构造它:

var regex = new RegExp('^'+var1, 'i' );

您想要的是创建动态regExp模式。这是可能的。必须将它们添加到“new RegExp()”对象中,以便为匹配生成正确的字符串。检查另一个stakoverflow柱:

除了使用
.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

如果需要创建动态正则表达式,则需要使用
新正则表达式
构造函数。

给出一些示例。此外,您不能用这种方式创建正则表达式。您正在创建一个字符串。您可以使用
RegExp
构造函数、
.indexOf()
.substring()
(您拥有的几个选项之一)