说我有这个例子:
$(function() {
var seconds = 142.097019375;
seconds = seconds.replace(/\.[0-9]*/, '');
alert(seconds);
});
这不会起作用,但是如果秒$('.seconds').html();
它将替换它,那么无论如何都要对jquery变量执行正则表达式。
答案 0 :(得分:6)
如果您的变量是一个数字,而您实际上只想提取整数部分,那么您将需要使用Math.floor
或Math.ceil
:
var int_part = seconds > 0 ? Math.floor(seconds) : Math.ceil(seconds);
答案 1 :(得分:3)
您无法在String
上致电methods replace
(具体而言,Number
)。首先尝试将Number
转换为String
:
seconds = (seconds + "").replace(/\.[0-9]*/, '');
答案 2 :(得分:3)
如果你只是想从数字中删除小数,这不是正常表达式的好用。
使用parseInt(),例如:
parseInt(seconds, 10);
看到它做同样的事情 - http://jsfiddle.net/bzAGe/
答案 3 :(得分:2)
它不起作用,因为Number对象没有.replace
函数。
使用seconds = seconds.toString().replace(/\.[0-9]*/, '');
答案 4 :(得分:1)
首先强制它为字符串:
$(function() {
var seconds = "" + 142.097019375;
seconds = seconds.replace(/\.[0-9]*/, '');
alert(seconds);
});
答案 5 :(得分:1)
你想得到这个var的整数部分吗? Use Math.floor。您可能还想知道其他方法,look a Math object reference。
定义和用法
floor()方法将数字DOWNWARDS舍入到最接近的整数,并返回结果。
<强>语法强>
Math.floor(x)
Parameter Description
x Required. A number
replace
是String
方法,您可以在执行替换之前将其转换为字符串
(seconds.toString()).replace()
或将秒声明为字符串
var seconds = "value";
<强>语法强>
string.replace(regexp/substr,newstring)
Parameter Description
regexp/substr Required. A substring or a regular expression.
newstring Required. The string to replace the found value in parameter 1