Php 正则表达式确保字符串仅包含管道、数字和/或逗号,
我如何确保字符串只包含数字和管道(或同时包含逗号和字符)?所有字符都是数字和管道或数字、逗号和管道Php 正则表达式确保字符串仅包含管道、数字和/或逗号,,php,regex,preg-match,Php,Regex,Preg Match,我如何确保字符串只包含数字和管道(或同时包含逗号和字符)?所有字符都是数字和管道或数字、逗号和管道 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
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
}
请尝试以下操作:
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)
请尝试以下操作:
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)
@Itay,没有必要在
[]
中转义
,因为特殊字符在[]]
中失去了意义@Itay,没有必要在[]
中转义
因为特殊字符在[]
中失去了意义。目前我认为大于10的数字不起作用,可能这就是我原来的错误所在,这些数字没有任何意义ceiling@user26676,它按预期工作。周围是否有空格?不,你是对的,我可以看到preg正在使用ideone(顺便说一句,不错的网站,对我来说是新的!)我必须深入研究我的代码。它的工作原理是,$\u请求
变量名一直都有一个输入错误。此时,我认为大于10的数字不起作用,例如:16 | 2,可能这就是我原来的错误所在,这些数字没有任何意义ceiling@user26676,它按预期工作。周围有没有空间?没有,你是对的,我可以看到preg正在使用ideone(顺便说一句,很好的网站,对我来说是新的!)我必须深入研究我的代码。它的工作原理是,$\u请求
变量名一直都有输入错误