我有一个包含参数/值对的字符串,形式如下:
{type1|value1}{type2|value2} .....
我需要查找字符串中是否包含特定类型(例如,使用indexOf搜索"{type3|"
),然后从该对中检索值。
我可以将起始点的字符串放入另一个字符串中,然后搜索值的起始和结束位置("|" and "}")
,但我确信应该有一种更简单的方法,可能使用正则表达式。
你有什么想法吗?
我有一个包含参数/值对的字符串,形式如下:
{type1|value1}{type2|value2} .....
我需要查找字符串中是否包含特定类型(例如,使用indexOf搜索"{type3|"
),然后从该对中检索值。
我可以将起始点的字符串放入另一个字符串中,然后搜索值的起始和结束位置("|" and "}")
,但我确信应该有一种更简单的方法,可能使用正则表达式。
你有什么想法吗?
您可以使用:
s='{type1|value1}{type2|value2}{type3|value3}{foo|bar}'
search='type3';
m = s.match(new RegExp('\\{' + search + '\\|([^}]+)'));
if (m)
val=m[1]; //=> "value3"
var my_string = "{type1|value1}{type2|value2}";
var regEx = /\{(.*?)\}/g,
match, object = {};
while ((match = regEx.exec(my_string)) !== null) {
var key_value = match[1].split("|");
object[key_value[0]] = key_value[1];
}
console.log(object);
# { type1: 'value1', type2: 'value2' }
将字符串转换为如下对象。现在,查找变得轻松和更快。