在变量上使用正则表达式?

时间:2011-06-18 22:59:30

标签: jquery regex replace

说我有这个例子:

$(function() {

    var seconds = 142.097019375;

    seconds = seconds.replace(/\.[0-9]*/, '');

    alert(seconds); 

});

这不会起作用,但是如果秒$('.seconds').html();它将替换它,那么无论如何都要对jquery变量执行正则表达式。

6 个答案:

答案 0 :(得分:6)

如果您的变量是一个数字,而您实际上只想提取整数部分,那么您将需要使用Math.floorMath.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

使用正则表达式

replaceString方法,您可以在执行替换之前将其转换为字符串

(seconds.toString()).replace()

或将秒声明为字符串

var seconds = "value";

Javascript String object

  • replace()搜索子字符串(或正则表达式)与字符串之间的匹配项,并用新的子字符串替换匹配的子字符串

<强>语法

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