Регулярное выражение для удаления разделителя тысяч из числовой строки?

У меня есть строки, содержащие тысячи разделителей, однако ни одна функция преобразования строки в число не хочет ее правильно использовать (с использованием JavaScript). Я думаю о "подготовке" строки, удалив все разделители тысяч, оставив все остальное нетронутым и позволив функциям Number / parseInt / parseFloat (я доволен своим поведением в противном случае) решать остальное. Но похоже, что я понятия не имею, какой RegExp может это сделать!

Приветствуются и лучшие идеи!


ОБНОВЛЕНИЕ:

Извините, ответы просветили меня, насколько плохо сформулирован этот вопрос. То, что я пытаюсь достичь, это: 1) удалить разделители тысяч, только если они есть, но 2) не беспокоить исходную строку, чтобы я получал NaN в случаях недопустимых чисел.

БОЛЬШЕ ОБНОВЛЕНИЯ:

JavaScript ограничен английской локалью для синтаксического анализа, поэтому для простоты предположим, что разделителем тысяч является ',' (естественно, он никогда не соответствует десятичному разделителю в любой локали, поэтому переход на любую другую локаль не должен вызывать проблема)

Теперь о функциях синтаксического анализа:

parseFloat('1023.95BARGAIN BYTES!')  // parseXXX functions just "gives up" on invalid chars and returns 1023.95
Number('1023.95BARGAIN BYTES!')      // while Number constructor behaves "strictly" and will return NaN

Иногда я использую rhw свободную, иногда строгую. Я хочу выяснить, как лучше всего подготовить строку для обеих функций.

О действительности цифр:

'1,023.99 ' - это хорошо сформированное английское число, и удаление всех запятых приведет к правильному результату. ' 1,0,2,3.99 ' не работает, однако общее удаление запятой даст '1023.99' , что вряд ли будет правильным результатом.

6
задан OnTheFly 18 November 2011 в 22:49
поделиться