我有一个看起来像这样的字符串:
PRE_VALUE1="TIMESTAMP" PRE_VALUE2="String13" PRE_VALUE3="" PRE_VALUE4="1" PRE_VALUE5="AK" PRE_VALUE6="key6" POST_VALUE1="000" VALUE8="KE_Y1" PRE_VALUE9="" PRE_VALUE10="10.10.10.10" ....
我的目标是拆分每个 PRE_VALUE#
的第二个引号后面的字符串。之后,我想构建一个简单的正则表达式来检查 PRE_VALUE# 的引号中是否有内容。
上面的部分对我来说已经很清楚了。我将使用 split-Method - 这是我的问题,我不确定如何告诉 split-Method 它应该在第二个引号而不是第一个引号处拆分字符串。
但是,我真正关心的是,如果拆分值与 RexExp 与变量匹配,我想分配它们。在将它们分配给该变量之前,应该有一个简单的单词来解释该字段。 例如:
PRE_VALUE2="String13" is going to be "String: String13".
如果我理解正确的话,最好最快的方法是在这里使用多维数组。由于有很多这样的消息,并且“PRE_VALUE#”仅通过 RegExp 为完整输入字符串构建它应该有点慢,对吗?
也许有人可以帮助我。
提前致谢!
最佳答案
您可以先用空格分割字符串
,然后再用=
分割,以获取数组
中的所有相关值
如下所示:
[ [ "PRE_VALUE1", "TIMESTAMP" ], [ "PRE_VALUE2", "String13" ], [ "PRE_VALUE3", "" ], [ "PRE_VALUE4", "1" ], [ "PRE_VALUE5", "AK" ], [ "PRE_VALUE6", "key6" ], [ "POST_VALUE1", "000" ], [ "VALUE8", "KE_Y1" ], [ "PRE_VALUE9", "" ], [ "PRE_VALUE10", "10.10.10.10" ] ]
代码应该是这样的:
var arr = string.split("\" ").map(x => {
x = x.replace(/\"/g, '');
return x.split("=");
});
演示:
let string = `PRE_VALUE1="TIMESTAMP" PRE_VALUE2="String13" PRE_VALUE3="" PRE_VALUE4="1" PRE_VALUE5="AK" PRE_VALUE6="key6" POST_VALUE1="000" VALUE8="KE_Y1" PRE_VALUE9="" PRE_VALUE10="10.10.10.10"`;
var arr = string.split("\" ").map(x => {
x = x.replace(/\"/g, '');
return x.split("=");
});
console.log(arr);
关于JavaScript - 需要多维数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60108968/