$ 150.00
Fr. 150.00
€ 689.00
Я проверил для трех символов валюты. Вы можете сделать это и для других.
var price = Fr. 150.00;
var priceFloat = price.replace(/[^\d\.]/g, '');
Выше регулярного выражения удалите все, что не является цифрой или периодом. Так вы может получить строку без символа валюты, но в случае «Fr. 150.00», если вы консоль для вывода, вы получите цену как
console.log('priceFloat : '+priceFloat);
output will be like priceFloat : .150.00
, что неверно, поэтому вы проверяете индекс «.». затем разделите это и получите правильный результат.
if (priceFloat.indexOf('.') == 0) {
priceFloat = parseFloat(priceFloat.split('.')[1]);
}else{
priceFloat = parseFloat(priceFloat);
}
Если вы объявляете attr_accessor
, вы можете использовать его как virtual attribute
, который в основном является атрибутом модели, который не сохраняется в базе данных.
Пример случая: вы объявляете attr_accessor :password
в своей модели User
, чтобы вы могли использовать его в качестве поля в новой пользовательской форме. Когда вы получите их пароль в соответствующем действии create
, вы можете получить hashed_password
, сохранить его в базе данных и удалить указанный password
(что делается автоматически в конце запроса).