【问题标题】:Javascript array.prototype.every not working inside function?Javascript array.prototype.every 在函数内部不起作用?
【发布时间】:2015-12-10 14:53:25
【问题描述】:

全部,

请看下面的代码笔

http://codepen.io/anon/pen/eJNMwJ

我正在尝试将一个字符串数组传递给我的名为 Validate email 的函数,该函数会反复检查电子邮件以查看它们是否与正则表达式匹配。

但是,由于某种原因,此功能似乎不起作用。

正则表达式正确

    var validEmail = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

function validEmailList(emails) {
                console.log("running test 2");
        return emails.every(function (email) {
            validEmail.test(email.trim());
        });
    };

    emails = ['bob@bob.com', 'foobar@bob.com'];
    $('.test1').append(validEmail.test("foobar@foo.com"));
    $('.test2').append(validEmailList(emails));

该函数似乎没有返回任何内容,我期待一个布尔值。

【问题讨论】:

    标签: javascript arrays regex


    【解决方案1】:

    你传递给every的函数也必须是return的东西。

    function validEmailList(emails) {
                console.log("running test 2");
        return emails.every(function (email) {
            return validEmail.test(email.trim());
        });
    };
    

    【讨论】:

      【解决方案2】:

      Array.prototype.every调用的回调需要返回一个布尔值:

      return emails.every(function (email) {
        return validEmail.test(email.trim());
      //^^^^^^^
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多