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

标签 php regex preg-match

我如何确保字符串只包含数字和管道(或也)逗号、字符? 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

}

最佳答案

尝试以下操作:

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)

关于php - 正则表达式确保字符串仅包含管道、数字和/或逗号,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18742510/

相关文章:

regex - 模式的正则表达式?

xml - cvc 模式有效 : Value 'A' is not facet-valid with respect to pattern '^[A-Za-z]?$' for type 'whatever'

php - 用于匹配标点符号和字母数字字符的正则表达式

php - preg_match 如何处理使用\Q..\E 时的定界符?

javascript - 如何从字符串中删除双引号,单引号以及如何传入ajax调用

php - jQuery BlockUI 脚本上的重复区域无法工作

codeigniter - 如何在 codeigniter 中发送包含 View 内容的电子邮件

php - 消除ajax搜索中的空白

regex - 防止危险的正则表达式停止应用程序

PHP: preg_match 长度限制