javascript - 正则语法问题,为什么要用new
伊谢尔伦
伊谢尔伦 2017-04-10 17:49:52
[JavaScript讨论组]
var regu =/^[1][3][0-9]{9}$/;
var re = new RegExp(regu);
if (re.test(s)) {
.....
}

为什么要new一次?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
天蓬老师

如果不 new 的话应该也是没问题的吧,想要应用在什么场景下呢?

伊谢尔伦

二者关系类似var obj = {} 和 var obj = new Object();
看使用场景的,普通的用/^……$/就行了,但有些比如带变量的就只能使用new了,你这里没有正文内容展示,两者都可以。

高洛峰

两种不同的写法,一个叫字面量,一个叫申明,就像你写一个函数也是可以写成{},或者new Function()一样

迷茫

一个是正则表达式字面量创建正则表达式,就是不带new的那个。
另一个是调用RegExp对象的构造函数,就是那个new那个。

/ab+c/i;                  // 字面量
new RegExp('ab+c', 'i');  // 构造
new RegExp(/ab+c/, 'i');  // ES6新增允许的写法

https://developer.mozilla.org...

迷茫

两者其实是一样的效果,不需要new

不过:在ES3中,直接创建字面量和new 方式不一样。字面量始终共享一个实例,而new 的方式会每次创建一个新的实例,ES5修复了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号