我有一些用户会输入一些数字的表单,我想阻止他们在这个字符串中输入多个逗号
我做了类似的事
var input = "1,,,,2";
var value = Regex.Replace(input, ",{1,}", ".");
这将输出1.2,这是正确的。但是如果我进入
var input = 1,,,2,3,,,4,5,,6
一切都失败了
id喜欢做的是将输入的最后一个版本形成为1.23456
有什么建议吗?
由于
答案 0 :(得分:2)
Regex.Replace (input, @"(?<=^\d+),", ".").Replace (",", "");
这会将第一个,
逗号替换为.
句点,然后将剩余的逗号替换为empty
。
答案 1 :(得分:1)
使用此正则表达式:(?<!,[^,]*?),+
var res = Regex.Replace(input, @"(?<!,[^,]*?),+", ".").Replace(",", string.Empty);
或者这段代码:
var res = Regex.Replace(input, @"(?<!,[^,]*?)(,+)|(,+)",
m => m.Groups[1].Success ? "." : string.Empty);
输出:1.23456