我有一个PHP应用程序,它应该需要一个特殊的激活密钥来解锁。 所以我想创建脚本来检查$user_input
是否格式正确。PHP检查字符串格式是否正确
的激活键将是这样的:
1E63-DE12-22F3-1FEB-8E1D-D31F
数字和字母间距可以变化。
所以激活密钥也可以是这样的或不同的:
1EE3-1E1C-R21D-1FD7-111D-D3Q5
- 冒号与分离 -
- 每个结肠包含4个字符它们是字母的混合和数字
在此先感谢您的帮助:)
我有一个PHP应用程序,它应该需要一个特殊的激活密钥来解锁。 所以我想创建脚本来检查$user_input
是否格式正确。PHP检查字符串格式是否正确
的激活键将是这样的:
1E63-DE12-22F3-1FEB-8E1D-D31F
数字和字母间距可以变化。
所以激活密钥也可以是这样的或不同的:
1EE3-1E1C-R21D-1FD7-111D-D3Q5
在此先感谢您的帮助:)
你必须使用正则表达式。我测试过此正则表达式的位置: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';
}
修改后可以很好地工作。没有修改它会抛出错误“警告: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} $ /'; 谢谢,您的脚本完全符合我的要求。 – xZero
此正则表达式会匹配您发布的一个键,也将工作,如果包含小写字母:
^([A-z0-9]){4}-([A-z0-9]){4}-([A-z0-9]){4}-([A-z0-9]){4}-([A-z0-9]){4}-([A-z0-9]){4}$
如果只想大写字母,将该正则表达式中的所有“z”更改为“Z”
我会使用正则表达式来检查此问题:http://stackoverflow.com/questions/2428343/regex-for-product-key – younes0
为什么你需要检查代码是否格式良好,因为如果他们不匹配的东西,格式或合作德,它不会工作。但是,我建议,如果您希望用户输入这种格式,请将6个文本框放入最大长度为4的文本框中,然后在接收输入时将它们连接为'-' –
这仅用于格式检查,输入后进一步检查。无论如何,你的建议/想法非常好,所以我可以使用它。谢谢。 – xZero