PHP preg_match 只允许数字、空格 '+' 和 '-'

标签 php regex string validation preg-match

我需要检查变量是否包含除 0-9 和“-”、“+”字符和“”(空格)以外的任何内容。

我写的 preg_match 不起作用。任何帮助将不胜感激。

<?php

$var="+91 9766554433";

if(preg_match('/[0-9 +\-]/i', $var))
 echo $var;
?>

最佳答案

您必须将 * 作为量词添加到整个字符类并添加 anchors到正则表达式的开头和结尾: ^$ 表示从行首到行尾只匹配包含内部正则表达式的行。此外,i 修饰符是不必要的,因为在此正则表达式中不需要不区分大小写。

这应该可以完成工作。

if(!preg_match('/^[0-9 +-]*$/', $var)){
     //variable contains char not allowed 
}else{
     //variable only contains allowed chars
}

关于PHP preg_match 只允许数字、空格 '+' 和 '-',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37098251/

相关文章:

php - real_escape_string() 和 mysql_real_escape_string() 有什么区别?

php - PDO 使用正确的值但将错误的值插入数据库

c# - 在 C# 中过滤正则表达式搜索以查找重复匹配项的首选方法是什么

Python 正则表达式重叠

regex - 如何将 sed 命令的多行输出保存到数组中?

c# - 从文件夹读取文本文件时,给定路径不支持错误消息

regex - Groovy 提取字符前的子字符串

c++ - (c++) 我需要在新类的头文件中包含什么

php - Mysql/php 合并 UPDATE mysql 查询以进行优化可能吗?

php - 在 PHP 中使用 1 个字母的类名是否安全,例如 A、B、C