如何对正则表达式进行字符串化?

时间:2016-03-14 08:39:21

标签: javascript regex

我有一个以下的正则表达式,如果输入是电子邮件,那就是chekcks:

/^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/

我想在javascript中将其字符串化。我试图使用:

var regex = new RegExp("/^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/");
regex.toString();

但这会让我得到错误的结果:

/\/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$\//

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用source属性

  

source属性返回一个包含该文本的源文本的String   regexp对象,它不包含两个正斜杠   双方和任何旗帜。

var regex = /^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/;
snippet.log(regex.source)
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>