簡體   English   中英

解析用戶輸入值

[英]Parsing a user-input value

我想允許用戶輸入一些輸入,如果可以的話,程序將其解析為 js 類型。 例如,用戶在文本輸入中輸入的內容是:

  • 你好 -> “你好”(字符串)
  • 2.13 -> 2.13(數字)
  • 真 -> 真(布爾)

以下是否會以非常基本的方式完成此操作,而忽略嵌套對象等?

 function parseValueFromText(text) { try { return JSON.parse(text); } catch(e) { if (e instanceof SyntaxError) { return text; } else { throw e; } } } let a=parseValueFromText('hello'), b=parseValueFromText(123); console.log(a, typeof a); console.log(b, typeof b);

您的實現非常接近,但如果 JSON.parse 產生一個字符串,那么您可能需要原始字符串,而不是解析結果。

另外,我認為任何異常都應該導致原始字符串。

function parseValueFromText(text) {
  try {
    const result = JSON.parse(text);
    if (typeof result !== 'string') return result;
  } catch {}
  return text;
}

暫無
暫無

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

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