我有一個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