regex - 用于检查 Flex 中逗号分隔数值的正则表达式

标签 regex apache-flex actionscript-3

谁能帮我找到合适的正则表达式来验证以逗号分隔的数字的字符串,例如'1,2,3''111,234234,-09' 等。其他任何内容都应视为无效。例如'121as23''123-123' 无效。

我想这在使用正则表达式的 Flex 中一定是可能的,但我找不到正确的正则表达式。


@Justin,我试过你的建议 /(?=^)(?:[,^]([-+]?(?:\d*\.)?\d+))*$/ 但我面临两个问题:

  1. 它将使 '123,12' 无效,这应该是正确的。
  2. 它不会使无效的 '123,123,aasd' 无效。

我尝试了另一个正则表达式 - [0-9]+(,[0-9]+)* - 它工作得很好,除了一个问题:它验证 '12,12asd '。我需要一些只允许用逗号分隔的数字。

最佳答案

您的示例数据由三个十进制整数组成,每个整数都有一个可选的前导加号或减号,以逗号分隔且没有空格。假设这描述了您的要求,Javascript/ActionScript/Flex 正则表达式很简单:

var re_valid = /^[-+]?\d+(?:,[-+]?\d+){2}$/;
if (re_valid.test(data_string)) {
    // data_string is valid
} else {
    // data_string is NOT valid
}

但是,如果您的数据可以包含任意数量的整数并且可能有空格,则正则表达式会变得有点长:

var re_valid = /^[ \t]*[-+]?\d+[ \t]*(,[ \t]*[-+]?\d+[ \t]*)*$/;

如果您的数据可能更复杂(即数字可能是 float ,值可能包含在引号中等),那么您最好将字符串解析为 CSV 记录,然后检查每个值单独。

关于regex - 用于检查 Flex 中逗号分隔数值的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5262196/

相关文章:

python - 使用 python 正则表达式匹配字符串

java - BlazeDS vs GraniteDS - 2 年后

apache-flex - Flex 4 中的 parentApplication 和 FlexGlobals.topLevelApplication

apache-flex - Adobe AIR 检测是否在 ADL 中运行?

java - 在java模式匹配器(正则表达式)中如何迭代每个文本并将其替换为不同的文本

Python re.sub 和 re.match 不匹配?

ruby - 正则表达式 "punct"字符类根据 Ruby 版本匹配不同的字符

apache-flex - Flex 组件生命周期 : validateNow, validateDisplayList、invalidateDisplalList、commitProperties 等

flash - 帮助检查嵌入代码 AS3 中的 flashVars 值

actionscript-3 - AS3 中的评估公式?