正则表达式确保字符串只包含管道,数字和/或逗号,

时间:2013-09-11 13:25:57

标签: php regex preg-match

我如何向自己保证字符串只包含JUST数字和管道(或者也包含)逗号,字符? EG:所有字符只是数字和管道或数字,逗号和管道

EG: 
1|2,2|3    = true
1|2        = true
bob        = false
bob|yes,no = false
到目前为止,这是迄今为止的

if (preg_match('/^[0-9|]|[0-9,|]+$/', $str)){ 
   //if all of the characters are only numbers and pipes or numbers, commas and pipes only

}

1 个答案:

答案 0 :(得分:3)

请尝试以下操作:

function ensure($str) {
    return (bool) preg_match('/^[\d|,]+$/', $str);
}

var_dump(ensure('1|2,2|3'));
var_dump(ensure('1|2'));
var_dump(ensure('16|2'));
var_dump(ensure('bob'));
var_dump(ensure('bob|yes,no'));
var_dump(ensure(''));

打印

bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)