JavaScript:test vs exec

前端之家收集整理的这篇文章主要介绍了JavaScript:test vs exec前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道什么是检查字符串的最佳方式(邮件,密码..Etc).
/^...$/i.exec(a)

VS

/^...$/i.test(a)

> exec返回值
>测试真

测试:

// 1° way
var mail = req.body.mail;
if(check(mail)){

EXEC:

// 1° way
var mail = req.body.mail;
if(check(mail)){

// 2° way
var mail = check(req.body.mail);
if(mail){

执行或测试?和什么数字(如果执行1°或2°)

这种情况下测试更好.

一定会更快.

但最重要的

>测试执行他的所有工作.虽然执行不执行,因为更多的可以做,但我们不需要.
像Mattias Buelens一样,使用isMail()更合乎逻辑:是一个电子邮件:是或否.而exec:是一封电子邮件:email或null – > wtf?大声笑

解决方法

如果只需要测试一个输入字符串来匹配正则表达式,则RegExp.test是最合适的.它将给你一个布尔返回值,使其成为条件的理想选择.

RegExp.exec为所有捕获组和匹配索引提供了类似数组的返回值.因此,在匹配后需要处理捕获到的组或索引时,这很有用. (另外,与使用全局修饰符/ g时的String.match相比,it behaves a bit different)

最终,速度和效率并不重要.仍将评估正则表达式,并且所有匹配的组和索引将通过全局RegExp对象可用(尽管强烈建议您使用返回值).

至于如果测试,那只是个人品味的问题.将正则表达式测试的结果分配给具有有意义名称的变量(例如isEmail)可以提高可读性,但不仅如此,它们都可以.

猜你在找的JavaScript相关文章