嗨我有一個正則表達式,它需要一個數字並從中刪除所有的逗號和其他字符。從數字中刪除期
num = num.toString().replace(/\$|\,/g, '');
我需要添加到這個正則表達式,所以它也刪除了它的點。例如23.00它應該只返回23。我試過這個(「//.",/\$|\,/g,」),但是效果不好。
請讓我知道如何解決它。 感謝
嗨我有一個正則表達式,它需要一個數字並從中刪除所有的逗號和其他字符。從數字中刪除期
num = num.toString().replace(/\$|\,/g, '');
我需要添加到這個正則表達式,所以它也刪除了它的點。例如23.00它應該只返回23。我試過這個(「//.",/\$|\,/g,」),但是效果不好。
請讓我知道如何解決它。 感謝
匹配點(這是一個pecial字符)用一個反斜槓逃脫它..嘗試類似:
num = num.toString().replace(/\$\.|\,/g, '');
UPDATE
根據你最後的評論你不想在期後的文字.. 如果它真的是一個號碼Math.Floor(num).ToString()
應該做的工作。
如果它沒有成爲一個號碼,你仍想使用正則表達式:
num = num.toString().replace(/\..*/, '');
如果你不確認正則表達式:
num = int.Parse(num.ToString().Split('.')[0]); // In case num is a number, otherwise, int.Parse and ToString are not needed
爲什麼不這樣做,並避免正則表達式? num.Floor().ToString()
從MSDN它看起來像.ToString("F0", CultureInfo.InvariantCulture)
將採取雙重像18934.1879輸出18934.
你甚至都不需要正則表達式:
string num = myNumber.ToString().Replace("$","").Replace(".","").Replace(",","");
這是假設你想一個數字,如「123.45」 是 「12345」,而不是 「123」
如果你想 「123.45」 是 「123」,而不是使用:
string num = String.Format("{0:#.##}", myNumber).Replace(",","");
num = num.replace('.', '')
如果你堅持使用正則表達式,在期間前放置\。這使得這個時期是一個文字而不是一個正則表達式模式。
如果是23.5,它應該返回235還是23? –
是不是有一個原因,在將它變成一個字符串之前,通過四捨五入或截斷它而不改變數字? –
而像「123.345,56」應該變成?????調用沒有文化信息的'ToString'可能會讓你陷入困境...... –