【发布时间】:2017-05-31 09:55:45
【问题描述】:
我有一个多行文本框,其中包含用逗号分隔的 10 位手机号码。我需要在至少 100 个手机号码的组中实现字符串。
100个手机号码一共用99个逗号隔开。我正在尝试编码的是拆分包含小于 100 的逗号的字符串
public static IEnumerable<string> SplitByLength(this string str, int maxLength)
{
for (int index = 0; index < str.Length; index += maxLength) {
yield return str.Substring(index, Math.Min(maxLength, str.Length - index));
}
}
通过使用上面的代码,我可以实现100个号码,因为100个号码的文本长度为10*100(手机号)+99(逗号)。但这里的问题是用户可能会输入错误的手机号码,比如 9 位甚至 11 位。
谁能指导我如何实现这一目标。 提前谢谢你。
【问题讨论】:
-
因此您的问题不是拆分而是输入的验证?
-
"用户可能输入了错误的手机号码" 但是您的用户当然总是会正确使用逗号?看来您需要在进一步处理之前验证您的输入。
-
不要使用这样的字段。如果有的话,用户很难正确输入数据。一个快速而肮脏的解决方案是使用多行文本框。对于人类来说,换行符是比逗号更好的分隔符。更好的是,使用显示所有项目的可编辑组合框。您可以单独验证修改的项目。您只需要一个
Add按钮即可添加新项目。 -
你应该检查输入的值是否正确,也许使用一些正则表达式。如果您只想检查 1 个电话号码,您可以根据您想要的电话格式执行
([0-9]{10})之类的操作或更好的操作。如果您想检查字符串(带逗号)是否有效,请执行([0-9]{10},){100}或([0-9]{10},)*,具体取决于您是否总是需要 100 个电话号码或至少一个 -
逗号会在10位后自动添加,但问题是它也支持excel上传,可能有错误的数字