首页 新闻 会员 周边 捐助

js 正则表达式诡异现象

0
悬赏园豆:10 [待解决问题]

var reg = new RegExp('^xls[x]{0,1}$','g');

 

reg.test('xlsx');

//true

 

reg.test('xlsx');

//false

 根据@刘宏玺的提示,使用compile后又变正常了

reg.compile();

reg.test('xlsx');

//true

reg.test('xlsx');

//true

 

这种情况怎么解释啊

Rod_zhu的主页 Rod_zhu | 初学一级 | 园豆:173
提问于:2016-03-31 14:51
< >
分享
所有回答(1)
0

靠,还真是

true false 循环

刘宏玺 | 园豆:14020 (专家六级) | 2016-03-31 15:01

这么调用

reg.compile();reg.test('xlsx');

http://www.w3school.com.cn/jsref/jsref_regexp_compile.asp

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-03-31 15:04

@刘宏玺: compile相当于是编译了,我的理解是可以提高性能。但是为什么会导致结果有差异呢?

支持(0) 反对(0) Rod_zhu | 园豆:173 (初学一级) | 2016-04-01 09:51

@Rod_zhu: 

定义和用法:

compile() 方法用于在脚本执行过程中编译正则表达式。

compile() 方法也可用于改变和重新编译正则表达式。

我也不是很清楚为啥不使用compile() 方法会出现那个问题

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2016-04-01 09:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册