gpt4 book ai didi

从字符串中拆分并返回值的 Javascript 函数

转载 作者:行者123 更新时间:2023-11-30 08:09:30 24 4
gpt4 key购买 nike

我正在尝试获取某个值。我是 javascript 的新手,我不明白为什么这不起作用。

如果我解析“kid_2”,我应该得到“kostas”。而不是“Kostas”,我总是得到“02-23-2000”。所以我在循环中一定有逻辑问题,但我真的卡住了。

function getold_val(fieldname,str){

var chunks=str.split("||");
var allchunks = chunks.length-1;
for(k=0;k<allchunks;k++){
var n=str.indexOf(fieldname);
alert(chunks[k]);
if(n>0){
var chunkd=chunks[k].split("::");
alert(chunkd);
return chunkd[1];
}
}
}
var test = getold_val('kid_2','date_1::02-23-2000||date_2::06-06-1990||kid_1::George||kid_2::Kostas||');

alert(test);

最佳答案

正则表达式可能更具吸引力。这是一个 fiddle :

function getValue(source, key){
return (new RegExp("(^|\\|)" + key + "::([^$\\|]+)", "i").exec(source) || {})[2];
}
getValue("date_1::02-23-2000||date_2::06-06-1990||kid_1::George||kid_2::Kostas||","kid_2");

但是如果你想要更复杂的东西,你可以像这样将该字符串解析成一个字典(fiddle):

function splitToDictionary(val, fieldDelimiter, valueDelimiter){
var dict = {},
fields = val.split(fieldDelimiter),
kvp;
for (var i = 0; i < fields.length; i++) {
if (fields[i] !== "") {
kvp = fields[i].split(valueDelimiter);
dict[kvp[0]] = kvp[1];
}
}
return dict;
}
var dict = splitToDictionary("date_1::02-23-2000||date_2::06-06-1990||kid_1::George||kid_2::Kostas||","||","::");
console.log(dict["date_1"]);
console.log(dict["date_2"]);
console.log(dict["kid_1"]);
console.log(dict["kid_2"]);​

关于从字符串中拆分并返回值的 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12606833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com