[英]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]*$",
希望這可以幫助! :)
與此類似的東西讓我非常惱火,請再次查看文檔 。
pattern
是format
的子驗證器,應類似於:
{
format: {
pattern: "[A-Za-z0-9]+"
}
}
您正在嘗試在“頂層”使用pattern
。 我在文檔中沒有看到任何暗示存在alphanumeric
類的輔助模式的信息。 (我認為該工具將使用的語言是說“ pattern
是format
驗證器的一種選擇”,但我不確定。)
您指出的錯誤消息還暗示拼寫錯誤:它告訴您無法識別messsage
,該messsage
包含3個字母“ s”,但應包含2個字母。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.