从字符串中提取整数?

时间:2011-03-04 23:14:23

标签: actionscript-3

如何从字符串中提取数字:

$1.50

除货币符号外的所有内容。或者从这样的事情:

rofl1.50lmao

只是询问是否存在我不知道的现有功能。

3 个答案:

答案 0 :(得分:4)

AS3中没有内置功能。像这样的简单RegExp可以帮助你:

/[0-9]+.?[0-9]*/

这是一个示例,应根据您的上下文进行重构。

以下是来自Gunslinger47的更精确的RegEx:

/-?\d*\.?\d+([eE]\d+)?/

答案 1 :(得分:1)

这是“普通”JavaScript,但FWIW:

justNumsAndDots = "rofl1.50lmao".replace(/[^\d.]/g,"") // -> "1.50" (string)
asIntegral = parseInt("0" + justNumsAndDots, 10)       // -> 1 (number)
asNumber = parseFloat("0" + justNumsAndDots)           // -> 1.5 (number)
asTwoDecimalPlaces = (2 + asNumber).toFixed(2)         // -> "3.50" (string)

注意:

  1. 不考虑本地化。
  2. Radix(base-10)传递给parseInt以避免潜在的八进制转换(不确定这个“问题”是否会影响AS)。
  3. “0”被添加到justNumsAndDots的开头,因此parseInt / parseFloat将永远不会在此处返回NaN。 (例如parseFloat(".") -> NaNparseFloat("0.") -> 0)。如果需要NaN,请改为套件。
  4. 像“rofl1.chopter50lolz”这样的输入将被剥离为“1.50”,它可能过于贪婪,视乎。
  5. 根据需要适应AS。
  6. 快乐的编码。

答案 2 :(得分:1)

据我所知,没有。您可以针对有效字符数组解析每个字符,或使用regexp。