簡體   English   中英

Javascript - 將帶有注釋的字符串轉換為 object

[英]Javascript - Convert string with comments to object

如何將以下字符串更改為 Object?


"password: {
  minLength: 8, // some comments
  maxLength: 24,
  strong: (value) => /.*[^0-9]+.*[0-9]+.*|.*[0-9]+.*[^0-9]+.*/.test(value),
},"

如果 - 且僅當 - 此字符串在您的控制之下,而不是您的應用程序用戶的控制之下,您可以使用eval 請注意,需要進行一些更改,因為字符串內容不代表有效的 JavaScript,它似乎是具有password屬性的 object,但缺少周圍的大括號。

所以這是它的工作原理:

 let input = `password: { minLength: 8, // some comments maxLength: 24, strong: (value) => /.*[^0-9]+.*[0-9]+.*|.*[0-9]+.*[^0-9]+.*/.test(value), },`; // Add braces to make it a valid object literal, and // add parentheses to make it into an expression: let result = eval(`({${input}})`); console.log(result);

NB: You cannot use JSON.parse here, as this string is not valid JSON, nor does JSON support function syntax.

但是,如果字符串是用戶提供的,則不應使用eval 您甚至可以質疑您是否應該支持解析此類用戶輸入,因為它可以執行您並不真正希望它執行的代碼。

暫無
暫無

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

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