Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从字符串中提取子字符串并将其存储为键值对_Javascript_Javascript Objects - Fatal编程技术网

Javascript 如何从字符串中提取子字符串并将其存储为键值对

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

我只想从上面的字符串中提取名称(例如:“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-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;
}