我有以下选项文本,我想将其放入变量中,除了£之后的所有字符,然后将其转换为数字。在这种情况下28.00
<option value="294">Set of 2 Boots</option><option value="295">Set of 4 Boots[Add £28.00]</option>
这会正确转换选择选项文本。
recal_var = jQuery('select').find('option:selected').text();
但这似乎不适用于£符号。如果我将所有内容更改为$符号我没有问题
price_result = parseFloat(recal_var.split('[Add £')[1].slice(0,-1).replace(/,/g,''));
我也尝试过这些,但没有运气。
price_result = parseFloat(recal_var.split('[Add £')[1].slice(0,-1).replace(/,/g,''));
price_result = parseFloat(recal_var.split('[Add £')[1].slice(0,-1).replace(/,/g,''));
我在firebug中得到的是recal_var.split(“[Add \ uFFFD”] [1]未定义
页面有这个metatag,不确定这是否有所作为。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
答案 0 :(得分:3)
var str = "Set of 4 Boots[Add £28.00]";
var costStr = str.match(/£([\d.]+)/);
if(costStr){
var cost = parseFloat(costStr[1]);
alert(cost);
}
示例:jsbin
编辑忽略了£并依靠最终的位置:
var str = "Set of 4 Boots[Add £28.00]";
var costStr = str.match(/([\d.]+)\]$/);
if(costStr){
var cost = parseFloat(costStr[1]);
alert(cost);
}
匹配逗号
var str = "Set of 4 Boots[Add £28,133.00]";
var costStr = str.match(/([\d.,]+)\]$/);
if(costStr){
var cost = parseFloat(costStr[1].replace(/,/g,""));
alert(cost);
}
答案 1 :(得分:0)
可能是字符集不匹配吗?元标记表示UTF-8,但Content-Type是哪个页面服务?