的第一次出現,我有一些形式中,用戶會輸入一些數字,我想,以防止它們在此字符串輸入多個逗號正則表達式只允許字符
我做了這樣的事情
var input = "1,,,,2";
var value = Regex.Replace(input, ",{1,}", ".");
這將輸出1.2,這是正確的。但是,如果我進入
var input = 1,,,2,3,,,4,5,,6
都失敗
什麼ID喜歡做的事就是形成輸入的最後一個版本1.23456
有什麼建議?
由於
的第一次出現,我有一些形式中,用戶會輸入一些數字,我想,以防止它們在此字符串輸入多個逗號正則表達式只允許字符
我做了這樣的事情
var input = "1,,,,2";
var value = Regex.Replace(input, ",{1,}", ".");
這將輸出1.2,這是正確的。但是,如果我進入
var input = 1,,,2,3,,,4,5,,6
都失敗
什麼ID喜歡做的事就是形成輸入的最後一個版本1.23456
有什麼建議?
由於
Regex.Replace (input, @"(?<=^\d+),", ".").Replace (",", "");
這種具有.
週期替換第一個,
逗號,然後用empty
替換剩餘的逗號。
使用這個表達式:(?<!,[^,]*?),+
var res = Regex.Replace(input, @"(?<!,[^,]*?),+", ".").Replace(",", string.Empty);
或者驗證碼:
var res = Regex.Replace(input, @"(?<!,[^,]*?)(,+)|(,+)",
m => m.Groups[1].Success ? "." : string.Empty);
輸出:1.23456
這隻適用於fint,但agent-j的方法稍微簡單一些 –
你能調用替換()兩次,一次更換第一個逗號,並再次刪除其餘的逗號? –
你爲什麼用句點替換逗號? (我在問,因爲我希望你不要將像3995000,43這樣的瑞典格式的數字轉換爲美國格式的3,995,000.43,所以你可以使用'decimal.Parse',而不是使用'decimal.Parse'與瑞典文化信息。) – dtb
即時通訊替換句點,以便能夠進行計算,它與數字格式無關! :) –