簡體   English   中英

Javascript array.prototype.every無法在函數內部工作?

[英]Javascript array.prototype.every not working inside function?

所有,

請參閱以下代碼筆

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));

似乎沒有從函數返回任何東西,我期待一個布爾值。

你傳遞給every的功能也必須return一些東西。

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

Array.prototype.every調用的回調需要返回一個布爾值:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM