Javascript 如何从字符串中提取子字符串并将其存储为键值对
我只想从上面的字符串中提取名称(例如:“Jack Bob”和“JOHN MAROTI”)和特定的数字(“t984088”和“t4101111”),并将它们保存为键值对 例如: KEY=3984088,VALUE=Jack Bob,从字符串的下面部分开始:Javascript 如何从字符串中提取子字符串并将其存储为键值对,javascript,javascript-objects,Javascript,Javascript Objects,我只想从上面的字符串中提取名称(例如:“Jack Bob”和“JOHN MAROTI”)和特定的数字(“t984088”和“t4101111”),并将它们保存为键值对 例如: KEY=3984088,VALUE=Jack Bob,从字符串的下面部分开始: var txt = "af86abf7-89b5-40f6-9099-5228f72aea88\t3984088\t` Jack Bob \t1\ t35631407838\t\t19650098\têdce27f38-07b7-40
var txt = "af86abf7-89b5-40f6-9099-5228f72aea88\t3984088\t` Jack Bob \t1\
t35631407838\t\t19650098\têdce27f38-07b7-40f4-b64a-a6bc8814fcb7\t4101111\t` JOHN MAROTI \t1\
t829234079446\t\t19600101\tê0b9a12ba-9b7c-484e-84bf-d75fcb18aa66\t2955999\t` BAYANABAI BUIPJ\t1
\t\t\t0\tê1795bec6-e28e-4749-a528-0d9a6082ca99\t2664383\t`JASON ASHOK MLOAP\t1\t\t\
t0\têada976ea-02f4-41f1-a1ec-397288dea7hh\t2569898\t`WILLY DHANRAJ AABJK\t2\t\t\t0";
至少有两种方法可以做到这一点:通过替换
af86abf7-89b5-40f6-9099-5228f72aea88\t3984088\t` Jack Bob \t1\
t35631407838\t\
或通过实用程序/助手
var pairs = {};
txt.replace(/\t(\d+)\t`([^\t]+?)\t/g, (_, key, value) => {
pairs[key] = value.trim();
});
console.log(pairs);
其中asKeyValuePairs(txt)
将返回所需的对象
如果不需要,请不要使用
.trim()
值。您可以使用以下正则表达式:/([0-9]+).?`.([a-zA-Z]+)/g
这将匹配所有名称、密钥对
我建议使用该网站来帮助创建这样的正则表达式
function asKeyValuePairs(txt) {
var re = /\t(\d+)\t`([^\t]+?)\t/g;
var pairs = {};
while (re.test(txt))
pairs[RegExp.$1] = RegExp.$2.trim();
return pairs;
}