-6

你能帮我用一个正则表达式吗:

$value = '["number"]';
or
$value = '["number","number"]';
or
$value = '["number","number","number"]';
or
...
...
...
...
$value = '["number","number","number","number","number","number","number"......,"number"]';


//$number can be rand(0, 99.....999);

我需要验证结果是真还是假!

4

2 回答 2

2

你真的需要使用PCRE吗?您的示例是有效的 json。

$array = json_decode('["number", "number", "123"]');
var_dump($array);

如果您只需要数字,您可以过滤它。

$new_array = array_filter($array, 'ctype_digit');
$result = count($array) == $new_array? $new_array : null;

var_dump($result);
于 2013-10-15T00:26:51.713 回答
2

这是我的版本:

function test($v)
{
    if (preg_match('/^\\[("number")(,"number")*\\]$/', $v))
        echo 'ok<br>';
    else
        echo 'fail<br>';
}

或者如果“数字”真的是数字,这个:

function test($v)
{
    if (preg_match('/^\\[("[0-9]+")(,"[0-9]+")*\\]$/', $v))
        echo 'ok<br>';
    else
        echo 'fail<br>';
}

注意 - 只接受正自然数,需要更改为负数和小数/浮点数

于 2013-10-15T00:27:16.670 回答