转换将字符串复杂化为整数?

时间:2013-01-21 13:27:09

标签: javascript parsing parseint

我使用innerHTML方法将字符串检索到变量中。字符串是:

£ 125.00
<!-- End: pagecomponent/pricesplit -->

我只想要125.00部分。是否可以使用parseInt()方法将其转换为整数?或者我可以做些什么来提取125.00部分?

由于

2 个答案:

答案 0 :(得分:3)

您可能希望使用正则表达式删除除数字和句点之外的任何内容,然后在剩余字符串上运行parseInt

parseInt(yourString.replace(/[^\d.]/g, ''), 10);

测试正则表达式here。这是一个细分:

/.../只是用于包装正则表达式的语法。忽略这些。

[...]创建一个角色类。

^当放置在角色类的开头时,它会否定内部的所有内容。

\d任何数字

.一个字面的时期。它不需要在角色类中进行转义 - 除了它意味着“任何角色”并且需要被转义。

所以/[^\d.]/表示“匹配任何不是数字或句点的内容”,然后用空字符串替换它。

如果您的号码可能包含小数点后的有效数字,例如125.50,则应使用parseFloat代替parseInt

答案 1 :(得分:1)

您可以使用正则表达式获取值。这是一个例子:

var str = '£&nbsp;125.00<!-- End: pagecomponent/pricesplit -->';
parseInt((/\d+/).exec(str)[0], 10);

或者如果您还想获得零:

(/\d+\.\d+|\d+/g).exec(str)[0]

您无法使用parseInt直接获取它,因为当字符串不以数字parseInt开头时不起作用。