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

Javascript 将复杂的字符串转换为整数?,javascript,parsing,parseint,Javascript,Parsing,Parseint,我已使用innerHTML方法将字符串检索到变量中。字符串为: £&nbsp;125.00 <!-- End: pagecomponent/pricesplit --> 125.00英镑 我只想要125.00部分。是否可以使用parseInt()方法将其转换为整数?或者,我可以做什么来提取125.00部分 谢谢您可以使用正则表达式获取值。以下是一个例子: var str = '£&nbsp;125.00<!-- End: pagecomponent/pric

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

£&nbsp;125.00
<!-- End: pagecomponent/pricesplit -->
125.00英镑
我只想要125.00部分。是否可以使用parseInt()方法将其转换为整数?或者,我可以做什么来提取125.00部分


谢谢

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

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

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

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

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

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

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

parseInt(yourString.replace(/[^\d.]/g, ''), 10);
测试正则表达式。下面是一个细分:

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

[…]
创建字符类

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

\d
任何数字

文字句点。它不需要在character类内转义——在character类外,它意味着“任何字符”,需要转义

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


如果您的数字可能包含小数后的有效数字,例如
125.50
,则应使用
parseFloat
而不是
parseInt

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

parseInt(yourString.replace(/[^\d.]/g, ''), 10);
测试正则表达式。下面是一个细分:

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

[…]
创建字符类

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

\d
任何数字

文字句点。它不需要在character类内转义——在character类外,它意味着“任何字符”,需要转义

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


如果您的数字可能包含小数点后的有效数字,如
125.50
,则应使用
parseFloat
而不是
parseInt

'125.00'。匹配(/\d+/ig;不,您想使用
parseFloat
我已经添加了说明为什么您不能使用
parseInt
以及如何仅提取数值。“£125.00”。匹配(/\d+/ig);不,您想使用
parseFloat
我已经添加了说明为什么您不能使用
parseInt
以及如何仅提取数值。我相信只允许数字将剥离
,给您
12500
而不是
125
。我相信只允许数字将剥离
,给你
12500
而不是
125
。我认为这不是一个可靠的匹配:-)想想价格中没有数字,或者没有小数的价格…@Bergi price没有小数就行了。数字之外的数字会导致问题,OP必须知道字符串的格式,才能确定是否需要解决这个问题。根据,点不在
\D
中。“
\d
[0-9]
的缩写”啊,你已经将
[\d.]
改为
[^\d.]
-我也应该读你的文本:-)@Bergi yes
[\d.]
不起作用,因为
\d
破坏了or子句:)谢谢你的回答,伙计们,我以前甚至不知道javascript正则表达式。这确实符合我的需要,但是我仍然需要了解表达式中所有\和/的含义。我不认为这是一个可靠的匹配:-)想想价格中没有数字,或者没有小数的价格…@Bergi price没有小数就行了。数字之外的数字会导致问题,OP必须知道字符串的格式,才能确定是否需要解决这个问题。根据,点不在
\D
中。“
\d
[0-9]
的缩写”啊,你已经将
[\d.]
改为
[^\d.]
-我也应该读你的文本:-)@Bergi yes
[\d.]
不起作用,因为
\d
破坏了or子句:)谢谢你的回答,伙计们,我以前甚至不知道javascript正则表达式。这确实符合我的需要,但是我仍然需要了解表达式中所有\和/的含义