我需要数值的php正则表达式,包括“-”和“,”

Posted

技术标签:

【中文标题】我需要数值的php正则表达式,包括“-”和“,”【英文标题】:I need php regular expression for numeric value including "-" and "," 【发布时间】:2011-08-09 10:24:06 【问题描述】:

php is_numeric 函数中不允许使用 '-' 和 ','。

【问题讨论】:

您可以在此处找到有关此内容以及更多信息:regular-expressions.info 如果您提供了它应该接受/解析的示例 - 十六进制可能会更有帮助?科学计数法? ',' 是否仅用作 000 分隔符? 【参考方案1】:

这个应该可以的:

preg_match("#^-?\d+(,\d+)?$#", "-1,2", $match);

匹配一个或多个数字:

"#\d+#"

可选地匹配一个逗号后跟一个或多个数字:

"#\d+(,\d+)?#

可选地匹配一个“-”号:

"#-?\d+(,\d+)?#"

只允许这个,不允许别的:

"#^-?\d+(,\d+)?$#"

【讨论】:

【参考方案2】:

is_numeric() 确实允许负数。我认为问题出在逗号上。

is_numeric( str_replace( ',', '.', $number ) );

另见Converting a number with comma as decimal point to float

【讨论】:

【参考方案3】:

试试这个表达式

^[0-9 ,-]+$

【讨论】:

以上是关于我需要数值的php正则表达式,包括“-”和“,”的主要内容,如果未能解决你的问题,请参考以下文章

23个常用正则表达式(数值和字符串)

如何使用正则表达式提取此字符串的坐标的 3 个数值,无论它们是正数值坐标还是负数值坐标

PHP常用正则表达式汇总

从字符串正则表达式 PHP 中提取数值 [关闭]

如何用正则表达式限制只输入整数(包括负整数和0)

php常用正则表达式