Javascript New Regex()添加尾部斜杠

Javascript New Regex()添加尾部斜杠,javascript,regex,Javascript,Regex,尝试在js中对电子邮件字段执行regexp。 这就是我到目前为止所做的: var regex = '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,16}?$/g', emailRegex = new RegExp(regex); 如果I console.log()返回emailRegex: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,16}?$\/g/ 我想要的是: /[a-z

尝试在js中对电子邮件字段执行regexp。 这就是我到目前为止所做的:

 var regex      = '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,16}?$/g',
 emailRegex     = new RegExp(regex);
如果I console.log()返回emailRegex:

/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,16}?$\/g/
我想要的是:

/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,16}?$/g
由于它现在返回的电子邮件是无效的错误。使用我想要的regexp(不带尾随斜杠)有效,使用控制台中返回的regexp.log()表示不匹配


如何从RegExp中删除尾部斜杠?

正则表达式/flags格式是正则表达式的文本格式;如果使用的是
RegExp
构造函数,则不使用它;相反,您使用两个离散字符串:
newregexp(“regularexpression”、“flags”)

因此:

当然,在这种情况下,不需要
新的RegExp

var emailRegex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,16}?$/g;

要向文本正则表达式添加标志,需要使用
/
文本形式:

var r = /matching/g;
除非显式使用
RegExp
构造函数,否则在通过字符串创建时不能提供标志:

var r = new RegExp('matching', 'g');

var regex='^[a-zA-Z0-9.\%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,16}?$,emailRegex=new RegExp(regex,'g')
@WiktorStribiżew谢谢你这么做了-regex新手,不知道你可以将全局文件传递给RegExp类haha#scrub:)谢谢,不知道你可以将标志内容传递给类-RegExp新手haha将在8分钟内接受
var r = new RegExp('matching', 'g');