如何在逗号分隔的字符串集中填充所有字符串[关闭]
Posted
技术标签:
【中文标题】如何在逗号分隔的字符串集中填充所有字符串[关闭]【英文标题】:How to pad all strings in a comma separated set of strings [closed] 【发布时间】:2020-04-25 03:38:55 【问题描述】:有没有办法一次性将每个单独的字符串填充到逗号分隔的字符串中?
我可以拆分逗号分隔的字符串,遍历每个字符串并填充它(用 0,表示 3 个字符)并再次加入数组元素,但不确定是否可以一次性完成。
例如,如果我有:
var someString = "01,002,7";
我怎样才能得到“001,002,007”?
我可以做这个客户端(jQuery)或服务器端(C#)
【问题讨论】:
逗号分割、pad、join...问题出在哪里? 字符串操作是 javascript 问题,而不是 jQuery 问题。 为什么所有的反对票? 哇! 5票反对!到处都是阴天? @Selvin 这是我的第一个想法,我只是认为可能有一种更优雅的方式来一次完成 【参考方案1】:服务器端方法:
拆分/合并/填充
string someString = "01,002,7";
string result = string.Join(",", someString.Split(',').Select(x => x.PadLeft(3, '0')));
Andreas'RegEx
接近服务器端
string someString = "01,002,7";
string result = System.Text.RegularExpressions.Regex.Replace(someString, @"\b\d1,2\b", m => m.Value.PadLeft(3, '0'));
【讨论】:
【参考方案2】:要在 Javascript 中实现这一点,您可以通过 ,
拆分字符串,并使用 map()
它构建另一个填充前导零的数组,如下所示:
var someString = "01,002,7".split(',').map(v => v.padStart(3, '0')).join(',');
console.log(someString);
请注意,由于使用了箭头函数和padStart()
,这在 IE 中不起作用。如果您想要旧版浏览器安全版本,请使用:
var someString = "01,002,7".split(',').map(function(v)
return ('000' + v).slice(-3)
).join(',');
console.log(someString);
【讨论】:
【参考方案3】:我不太确定您为什么不想使用“问题”中提到的明显解决方案,但您也可以使用 String.prototype.replace()
var input = "01,002,7";
var output = input.replace(/\b\d1,2\b/g, m => m.padStart(3, "0"));
console.log(output);
【讨论】:
【参考方案4】:试试这个
var s = "01,2,3";
var t = s.Split(',').Select(x => x.PadLeft(3, '0')).Aggregate((z,c)=>z+","+c);
Console.WriteLine(t);
Console.ReadKey();
【讨论】:
谢谢大家,这么多优秀的回应。我将尝试服务器端和客户端的方法并进行更新,我偏爱客户端操作。现在,如果有人能告诉我是什么导致了如此多的反对票,那么下次我不会犯同样的错误,那将是很棒的(问题格式,问题的性质......)以上是关于如何在逗号分隔的字符串集中填充所有字符串[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
用逗号分隔的文本 JQuery 填充 DropDownList
sql server里如何将一组用逗号分隔的字符串分解并插入到另一张表中,比如:11873,27827, 也可能是好多