首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否需要使用var foo =新的RegExp?

是否需要使用var foo =新的RegExp?
EN

Stack Overflow用户
提问于 2013-02-21 19:39:13
回答 3查看 137关注 0票数 1

在研究javascript中正则表达式的使用时,可以遇到两种类型的示例:

答:

代码语言:javascript
复制
var regex = /^[a-zA-Z0-9]+$/;

B:

代码语言:javascript
复制
var regex = new RegExp ("^[a-zA-Z0-9]*$"); 

是否有必要使用var foo = new RegExp**?或者,何时应该选择每一种方法?**

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-21 19:41:28

当您必须在运行时动态地组装正则表达式时,RegExp()构造函数非常有用。如果表达式是完全静态的,那么使用本机regex语法(您的"A")就更容易了。本机语法的易用性源于这样一个事实,即不必担心引用反斜杠,就像正则表达式以字符串常量开始生命一样。

票数 6
EN

Stack Overflow用户

发布于 2013-02-21 19:42:27

是否有必要使用var foo = new RegExp

不,显然不是。另一个也能用。

或者,什么时候应该选择每一种方法?

正则文字更容易读和写,因为您不需要字符串--转义regex转义字符--您可以只使用它们(反斜杠、引号)。而且,它们只在脚本“编译”期间被解析过一次--每次对行进行计算时,不需要执行任何操作。

仅当您想动态构建正则表达式时,才需要使用构造函数

票数 1
EN

Stack Overflow用户

发布于 2013-02-21 19:50:38

下面是一个“动态”正则表达式的示例,您可能需要使用new RegExp

代码语言:javascript
复制
var search = 'dog',
    re = new RegExp('.*' + search + '.*');

如果它是一个静态正则表达式,那么文字语法(您的A选项)会更好,因为它更容易编写和读取。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15010783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档