PHP检查字符串是否格式正确

xZe*_*ero 4 php string formatting

我有一个PHP应用程序,需要一个特殊的激活密钥才能解锁.所以我想创建脚本来检查$user_input格式是否正确.

激活密钥将如下所示:
1E63-DE12-22F3-1FEB-8E1D-D31F

数字和字母间距可能不同.
所以激活密钥可能也是这样或不同的:
1EE3-1E1C-R21D-1FD7-111D-D3Q5

  1. 冒号与 - 分开 -
  2. 每个冒号包含4个字符,这些字符是字母和数字的混合

在此先感谢任何帮助:)

小智 13

你必须使用正则表达式.我在这里测试了这个正则表达式:http://www.phpliveregex.com/

<?php

$key   = '1E63-DE12-22F3-1FEB-8E1D-D31F';
$regex = '^[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$';

if (preg_match($regex, $key)) {
    echo 'Passed';
} else {
    echo 'Wrong key';
}
Run Code Online (Sandbox Code Playgroud)

  • 修改后效果很好。如果不进行修改,它会抛出错误“警告:preg_match():找不到结束分隔符'^'”,所以我将其修改为 $regex = '/^[A-Z0-9]{4}-[A-Z0-9] {4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$/' ; 谢谢,你的脚本完全符合我的要求。 (5认同)