2

我正在尝试使用preg_match.

文本格式是数字分隔,,没有字母或其他任何内容

只是数字 + ","

例如 :10,50,30

可以说我想检查一下:

20,300,60  //ok
50  //ok..yes, ok even if there is no "," because there is no other number after it.
40,,60,60 // not ok..double ","
55,411, //not ok..contain "," at the end
70,800  //ok

我真的尝试了很多东西并且在我打开这个 Q 之前浪费了 2 个小时

请问有什么想法吗?

谢谢你。

4

2 回答 2

2

您可以使用正则表达式/^\d+(,\d+)*$/

if (preg_match('/^\d+(,\d+)*$/', $string)) {
    // Matches
} else {
    // Does not match
}

如果要匹配小数,请使用以下表达式:

/^\d+(?:\.\d+)?(,\d+(?:\.\d+)?)*$/
于 2013-06-01T18:00:33.800 回答
0
preg_match('/^[0-9][0-9,]*$/', $string)

...也将完成您正在寻找的内容,但是,它不会独立于语言环境,再说一次,大多数国家/地区都使用我们在英语中使用的阿拉伯数字,所以我认为这不会太过分问题。一切顺利,希望它对你有用。

于 2013-06-01T18:57:20.620 回答