是否可以在JavaScript中的数字上使用字符串函数?

时间:2018-07-25 08:30:57

标签: javascript string replace

您能告诉我在Java数字中使用字符串函数是否可以吗?我有一个代码,需要对字符串值做一些修改。就像这里:

var value = 0;

if( tableRow.find('input').length )
{
    value = tableRow.find('input').val();
}

value = value.replace(/\s/g, '')  // Remove spaces

但是有时replace()之前的值仍为默认0(数字类型)。那么可以在数字上调用replace(或其他字符串函数)吗?似乎可以,但是我不确定是否所有的浏览器都支持它。

编辑:这是不可能的。我的代码工作正常,因为它始终是字符串,并且不跳过条件。但是数字类型的变量没有NOT .string()函数。

3 个答案:

答案 0 :(得分:3)

您不能通过电话号码拨打replace。您可以在value.toString()上调用它,或者将value初始设置为0

答案 1 :(得分:3)

  

是否可以在javascript中的数字上使用字符串函数?

不。数字和字符串具有不同的方法。数字没有replace方法(因为它对数字没有意义,但对字符串却有意义)。

  

但是有时,replace()之前的值仍为默认值0,即数字类型。

为避免这种情况,请将默认值也设置为字符串:

var value = "0";
// ---------^-^

if( tableRow.find('input').length )
{
    value = tableRow.find('input').val();
}

value = value.replace(/\s/g, '')  // Remove spaces

...或仅在另一条路径上执行replace,然后在另一条路径上转换为数字:

var value = 0;

if( tableRow.find('input').length )
{
    value = tableRow.find('input').val();
    value = +value.replace(/\s/g, '')  // Remove spaces, convert to number
}

({+只是转换为数字的一种方法。You have several options,各有利弊。)

答案 2 :(得分:0)

否,由于数字类中没有此类功能,因此无法对数字使用替换。

您的值可能是一个字符串,(请使用typeof(value)进行检查),该字符串仅包含数字而不是数字。

value = 10不同于value =“ 10”。