字母数字标识符导致问题

时间:2014-03-06 14:41:34

标签: javascript jquery alphanumeric

我正在使用一个基本标识符,该标识符使用带有附加字母数字部分的unix时间戳。

直到最近,一切都运行良好 - 数据库中的一些标识符无法更新。

我注意到失败的id有所有数字和字母E.

EG 1386953039E87,转录为1.386953039e + 96

我远不是一名数学家,但觉得原来的价值被视为一个数字。我尝试过使用toString()函数,但这对我没用。

1 个答案:

答案 0 :(得分:2)

调用toString为时已晚,因为输出1386953039E87已将其创建为数字(或JavaScript对数字的最佳猜测)。

尝试修改服务器端代码,将其环绕在引号中,以便将其创建为字符串而不是数字。

这也可能是使用jQuery的data()函数的副作用。他们在their api docs中提到它并没有改变它们的价值,但似乎你的情况证明不是这样:

  

每次尝试都将字符串转换为JavaScript值   (这包括布尔值,数字,对象,数组和null)。一个值   如果这样做不会更改值,则仅转换为数字   表示。例如,“1E02”和“100.000”等同于   数字(数值100)但转换它们会改变它们的数字   表示所以它们被保留为字符串。字符串值“100”是   转换为数字100。

     

当data属性是一个对象(以'{')或数组开头时   (以'['开头)然后jQuery.parseJSON用于解析字符串;   它必须遵循有效的JSON语法,包括引用的属性名称。如果   该值不能作为JavaScript值进行解析,而是保留为   字符串。

     

要将值的属性检索为字符串而不进行任何尝试   转换它,使用attr()方法。

所以你似乎需要使用attr()而不是data()来实现这个