Flex - Actionscript - RegExp - 从字符串中检索特定数据

时间:2012-11-14 20:58:44

标签: regex flex actionscript

我一直在搞乱这一段时间,并决定在这里发帖,看看是否有人可以提供帮助。我甚至搞乱了RegExr工具(没有运气): http://gskinner.com/RegExr

无论如何,我有一个包含verbiage(没有引号)的字符串: “13.5至14.1”

我需要创建一个带有第一个数字的var:13.5和一个带有第二个数字的var:14.1

所以我想要以下结果:

var firstVal:String = 13.5; var secondVal:String = 14.1;

我通过对第一个数字执行以下操作来实现它: var lowRegExp:RegExp = / \ d [0-9]。\ d [0-9] /;

对于第二个数字我做了这个: var highRegExp:RegExp = / \ d [0-9]。\ d [0-9] $ /;

我的问题是我不会知道String的格式。它也可能看起来像这样(两位数字跟随小数): 13.57至14.10

所以我需要确保它使用以下组合: 13.50至14.1,13.5至14.10,3.50至4.10,3.5至4.1(所有组合必须有效)

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

这是我的工作。我不确定这是多么干净,我不是硬编码的粉丝,但它适用于所有场景。如果有人知道干净的方法,请告诉我。

var myString:String="13.5 to 14.1";
var firstVal:String=myString.substring(0, myString.search(" to "));
var secondVal:String=myString.substring((myString.search(" to ") + 4));

答案 1 :(得分:0)

应该非常直接,您需要以下内容:   - 任何数字#,后跟句点文字,后跟任意数字。

Pattern: \d+\.\d+
So use something similar:
var mystr:String = "15.4 to 153.93";
var tokens:Array = mystr.match(/\d+\.\d+/g);

另外,我养成了使用regexpal.com的习惯,这比你的应用程序中的迭代测试更快。 ;)