Javascript类对象字符串到对象
Javascript Object-like-string to Object
我将验证规则存储在一个HTML属性中。
字符串文本中的验证规则如下所示:
'{required:true, minlength:2, maxlength:100}'
要将其转换为javascript对象,我可以使用eval(string_literal)
然而,eval
是…令人不愉快的。
是否有替代使用eval将对象(如string)转换为对象?
约束是我不能使用JSON
使用eval
与来自您信任的来源的良好控制的数据是好的。在最坏的情况下,解析器的启动成本可以忽略不计。当然,使用eval
与来自您不信任的来源的控制不良的数据是一个坏主意tm。
如果您不使用eval
,恐怕没有真正的快捷方式,您将不得不自己解析字符串。如果它真的只是一个简单的列表,如所示,几个split
调用正则表达式就可以完成它,不需要一个完整的解析器。
快速即兴示例(live copy | source):
(function() {
var data = '{required:true, minlength:2, maxlength:100}';
var entries, index, entry, parts;
entries = data.substring(1, data.length - 2).split(/, ?/);
for (index = 0; index < entries.length; ++index) {
entry = entries[index];
parts = entry.split(/: ?/);
display("Key '" + parts[0] + "', value '" + parts[1] + "'");
}
function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
})();
当然,这充满了假设(最值得注意的是,值永远不会是包含逗号或冒号的字符串),但是,如果数据足够简单,您可以避免使用完整的解析器。
相关文章:
- 如何使用jquery读取对象字符串
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- Javascript对象字符串值-在应该隐藏的时候呈现的HTML代码
- 在Nodejs中将数组转换为类似子的对象字符串
- 对象字符串转换为JSON(抛出错误)
- 如何将事件对象字符串化
- 如何在 JavaScript 中将 JSON 对象字符串化为负零
- 将 JSON 对象字符串数组转换为 JS 对象数组
- 如何在角度转换请求中将对象字符串转换为 JSON 对象
- 删除开头的双引号&结束于JSON对象/字符串或Java脚本变量
- 将json对象字符串转换为值
- 如何迭代json对象字符串
- 将数组列表转换为json对象字符串
- 如何将继承的对象字符串化为JSON
- 如何按对象字符串值之一对对象数组进行数字排序
- 解析日期对象字符串并获取以毫秒为单位的时间
- 如何在javascript中解析javascript对象字符串
- Javascript类对象字符串到对象
- 从使用.data()添加的对象字符串中获取值
- 如何在javascript中添加一个函数变量到对象字符串