Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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-将字符串转换为reg exp对象_Javascript_Jquery_Html_Regex_Expression - Fatal编程技术网

Javascript Jquery-将字符串转换为reg exp对象

Javascript Jquery-将字符串转换为reg exp对象,javascript,jquery,html,regex,expression,Javascript,Jquery,Html,Regex,Expression,我的正则表达式是/^([a-zA-Z0-9])+([a-zA-Z0-9\.\u-])*@([a-zA-Z0-9\.\u-])+([a-zA-Z0-9\.\u-])+$/,在html中,我将其作为一个隐藏元素添加,并将元素的值设置为上述模式 当我这样做时: var regex=/^([a-zA-Z0-9])+([a-zA-Z0-9\.\u-])*@([a-zA-Z0-9\.\u-])+([a-zA-Z0-9\.\u-])+$/ var text=$(this.val() 然后使用regex进行测

我的正则表达式是
/^([a-zA-Z0-9])+([a-zA-Z0-9\.\u-])*@([a-zA-Z0-9\.\u-])+([a-zA-Z0-9\.\u-])+$/
,在html中,我将其作为一个隐藏元素添加,并将元素的值设置为上述模式

当我这样做时:

var regex=/^([a-zA-Z0-9])+([a-zA-Z0-9\.\u-])*@([a-zA-Z0-9\.\u-])+([a-zA-Z0-9\.\u-])+$/
var text=$(this.val()
然后使用
regex进行测试。test(text)
效果良好

但当我这样分配正则表达式时:

var regex = $("#m"+id).val() // (my hidden element)
那就不行了。我也尝试过使用新的RegExp分配它,但也不起作用。我认为它这样做是因为它将值作为字符串从
$(“#m”+id).val()
(我在这里返回了正确的值),但不确定解析它的目的


任何帮助都将不胜感激。

如果您想从字符串构建regexp,那么请使用regexp类的构造函数,它将使用不带斜杠的字符串,因此您应该删除它们
.slice(1,-1)
删除第一个和最后一个字符。尝试使用以下方法:

var regex = new RegExp($("#m"+id).val().slice(1, -1));
尝试:


只有当它是正则表达式文字时,才使用开头和结尾的斜杠。删除它们以获得实际的正则表达式,然后可以使用
newregexp(str)
将字符串转换为regex对象

var regex = new RegExp($("#m"+id).val())