PHP:用于精确匹配的正则表达式

标签 php regex pattern-matching

这是我目前拥有的正则表达式(哪种有效):

$regex = '/[\w ]{7,30}/';

我的修改看起来像我想要的,但它根本不起作用:

$regex = '^[\w ]{7,30}$';

这是我使用正则表达式的方式:

public function isValid( $value )
{

    $regex = '/^[\w ]{7,30}$/';
    return preg_match( $regex, $value ) ? true : false;

}

我正在尝试匹配以下内容:

  • 任何小写/大写字母
  • 任何数字
  • 可以包含空格
  • 不能包含换行符或制表符
  • 最少 7 个字符
  • 最多 30 个字符

有效输入:

  • 测试
  • 测试
  • 测试123
  • 测试 123
  • 测试___

无效输入:

  • 测试#
  • 测试8+
  • 测试人员 1&

第一个正则表达式将匹配所有有效的输入,以及无效的(只要前四个字符有效,它不关心其余的)。第二个正则表达式不匹配。

最佳答案

尝试像这样结合两者:

$regex = '/^[\w ]{7,30}$/';

关于PHP:用于精确匹配的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9401522/

相关文章:

php - 选择 php-session-id 作为 MySQL 数据库中的主键是个好主意吗?

javascript - php 和 javascript 表单验证问题

php readfile 错误的字符集

java - 用于拆分电话号码的正则表达式

F# 模式匹配直接针对 let 绑定(bind)

java - 从数学方程中提取变量

python - 关键词多词时高效搜索关键词

php - xDebug Remote_connect_back 不适用于 AWS EC2 实例

regex - 使用两个星号在git中添加一个文件

mysql - 如何使用 REGEXP MySQL 函数查找超过 2 个点的电子邮件?