В моей системе var PRICE будет иметь разные форматы в зависимости от конфигурации CURRENCY, установленной пользователем. Поэтому я могу получить такие значения, как:
a) цена: $ 4.5 || б) цена: 4,5 € || c) цена: Bs. 4.5 || г) цена: 4.5 ₵
Я не знаю, будет ли символ валюты быть до или после номера, и я не знаю, какой символ он будет (это ракурс OpenERP, поэтому изменение формата не является вариантом)
Как получить номер, несмотря на символ валюты?
Как только вы получите строку, ваш может заменить каждый символ без цифры и точку:
var number = '$ 4.5'.replace(/[^\d\.]/g, '');
Затем вы можете разобрать его:
number = parseFloat(number);
//Alternatively
number = +number;
Я предложил вашу проблему, используя JQuery для замены любого символа, который не является числом или ".". (Точка).
Я создал несколько интервалов со значениями:
<span>$4.10</span>
<span>£7.76</span>
<span>€23.44</span>
затем создал некоторый JQuery для предупреждения значений:
$("span").each(function(){
var a = $(this).text().replace(/[^0-9.]/g, "");
alert(a);
});
Вот JSFiddle, с которым вы можете общаться: http://jsbin.com/xelameki/1/edit/
Я надеюсь, что это поможет =)
Я сделал следующее испытание:
$(document).ready(function(){
var price1 = "$ 4.5";
var price2 = "4.5 €";
var price3 = "Bs. 4.5";
var price4 = "4.5 ₵";
$("#test").append(price1.split(" ")[1]);
$("#test").append(price2.split(" ")[0]);
$("#test").append(price3.split(" ")[1]);
$("#test").append(price4.split(" ")[0]);
});
Рабочая скрипка: http://jsfiddle.net/robertrozas/H4QUu/1/
/[\d.]+/
? Какое тебе дело до того, какие символы есть?