解析选项字符串
Parse option string
如何解析字符串
文本= "安德烈' ' s照片;假期";字体= Arial;大小= 12
到javascript对象对象,如:
var options = {
text: 'Andrey''s Photos; Vacation',
font: 'Arial',
size: 12
}
我的问题是值可能包含;
和=
字符,所以我不能只使用s.split(';')
。但是,如果values字符串中有这样的符号,则应该将值括在单引号或双引号中。所以解析那个字符串应该是可能的
假设答案是否定的:
var s = 'Text="Andrey''s Photos; Vacation";Font=Arial;Size=12;SingleQuoted=''The dog said "Foo"''';
var re = /(.*?)=(?:"(.*?)"|'(.*?)'|([^;]*?))(?:;|$)/g;
var match;
var options = {}
while(match = re.exec(s))
{
var string_val = match[2] || match[3] || match[4];
var num_val = parseFloat(string_val);
var val = isNaN(num_val) ? string_val : num_val;
options[match[1].toLowerCase()] = val;
}
EDIT:编辑为允许使用'或"作为分隔符。然而,你仍然无法逃脱。
EDIT 2:如果适用,编辑为使用数字类型。现在它只是检查它是否可以被强制为一个数字,而不是试图考虑引号。
相关文章:
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- 在Chrome for iOS中,附加到用户代理字符串的唯一选项卡ID
- 基于查询字符串的活动选项卡
- jQuery从选项的输出字符串中选择HTML选项
- 如何使用Javascript/jQuery将信息从查询字符串传递到Facebook中的页面选项卡应用程序
- 表单操作查询字符串中需要下拉选项值
- 根据包含字符串的值选择<选择> <选项>
- 谷歌浏览器扩展程序 - 获取字符串中的选项卡内容
- 如何传递逗号分隔字符串以选择 Angular js 中的选项
- 解析/执行过滤具有许多选择选项的javascript字符串
- 将 grunt 命令行选项解释为字符串
- asp.net通过传递查询字符串在下拉列表的NEW选项卡中重定向页面
- jquery检查字符串是否已从文本区域删除,并从select中删除选项
- jQuery-选定的选项值包含字符串
- 字符串和选项值比较
- 如何解码包含Magento产品选项的JSON字符串
- 如何使用kendoui网格传递来自javascript onclick的带模板选项的硬编码字符串值
- 字符串化JSON的Highcharts选项
- 如何使用Jquery JSP从html选择选项中选择一个字符串值
- 使用Javascript DOMParser将单字符串HTML格式化为多行选项卡HTML