簡體   English   中英

validate.js返回錯誤“未知的驗證器模式”

[英]validate.js returning error “unknown validator pattern”

我正在嘗試使用validate.js驗證來自前端的輸入,然后再將其輸入帶有節點的數據庫中,但出現了一個我無法弄清的錯誤。 我查看了文檔,並相信我正確設置了約束。 確切的錯誤是:

message:"Unknown validator pattern"

我的驗證器是這樣設置的:

                    let alphanumeric = /^[a-zA-Z0-9]*$/;
                    let constraints = {
                        clientUsername:{
                            presence: true,
                            length: {min:8, max:15},
                            pattern:alphanumeric,
                            message: 'make sure client username is between 8-15 characters, is only numbers and letters'
                        },
                        tileCategory:{
                            presence:true,
                            length:{min:1, max:1},
                            numericality:{
                                onlyInteger:true,
                                lessThanOrEqualTo:tileCategoryNumber,
                            },
                            message:'enter a number, 1 char in length, less than or equal to 3' //the current number of tiles
                        }
                    };

                    validate({clientUsername: input.clientUsername},constraints);

起初我以為是正則表達式模式,但嘗試將其注釋掉,然后說

message:"Unknown validator messsage"

所以我猜想我的驗證器總體上有問題。

我當然最頂層包括const validate = require('validate.js');

我可以看到有(2)件事。 首先,您使用帶有/之前和之后的基於JS的正則表達式。 嘗試刪除這些。

除此之外,我建議嘗試刪除字母數字參數並直接輸入正則表達式...這也可能是類型問題。

  pattern:"^[a-zA-Z0-9]*$",

希望這可以幫助! :)

與此類似的東西讓我非常惱火,請再次查看文檔

patternformat的子驗證器,應類似於:

{
    format: {
        pattern: "[A-Za-z0-9]+"
    }
}

您正在嘗試在“頂層”使用pattern 我在文檔中沒有看到任何暗示存在alphanumeric類的輔助模式的信息。 (我認為該工具將使用的語言是說“ patternformat驗證器的一種選擇”,但我不確定。)

您指出的錯誤消息還暗示拼寫錯誤:它告訴您無法識別messsage ,該messsage包含3個字母“ s”,但應包含2個字母。

暫無
暫無

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

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