[英]jQuery and selectors: how can I make sure that there really is the element I'm looking for?
[英]How can i be sure that my typeof is really working?
(這里是超初級開發人員)
我有這些代碼..使用 typeof 來驗證客戶端是否放置了一個字符串..否則將不會執行任務並將發送錯誤 400...事情是我的 dev-Front colegue ..他是在用戶名中輸入一個字符串,他有一個 400 錯誤。
-- 如果有另一種方法來檢查輸入是否是字符串。??
它是一個大型驗證器,同時檢查其他類型的輸入。所以也許你的答案可能會影響所有代碼。
謝謝
有人可以解釋為什么
function tappingValidator(req, res, next) {
if (typeof req.body.username !== "string") {
const msg = JSON.stringify({ msg: "username has to be a string" });
const err = new Error(msg);
err.statusCode = 400;
return next(err);
}};
將 function 添加到您的代碼庫
function isString(arg) {
return typeof arg === 'string' || arg instanceof String
}
然后在 if 語句中使用它,如下所示:
if(!isString(req.body.username)) {
// it is not a string
// ...
}
任何字符序列,包括純數字序列,都是字符串。 是上下文和/或語法造成了數字和字符串之間的區別。
const a = 123;
const b = '123';
console.log(typeof a); // displays "number"
console.log(typeof b); // display "string"
無論該字符串的內容是什么, req.body.username
都可能是字符串數據類型(來自 web 表單)。
如果您想確保字符串不以數字開頭,則此正則表達式測試將起作用:
if (/^[\d]/.test(req.body.username)) {
const msg = JSON.stringify({ msg: "username shouldn't start with a digit" });
如果您只是想排除純數字的情況,還有其他測試,但允許以數字開頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.