請教各位怎麼比對一個字串只能符合數字、英文、底現、橫線、冒號,但結尾不能是冒號的寫法呢
目前最接近的寫法如下
$strings = [
'aaa:bbb-cool',
'aaa-22-bbb_cool3',
'aaa:bbb-cool:',
'aaa_bbb-cool:',
'aaa_bbb-cool',
'bbbb:>dd',
'hihi%',
'大家好',
'0000000000',
'11111:2222:3333',
'11111:2222:3333:',
'[email protected]@@1',
'大家好',
];
$pattern = '/[0-9a-zA-Z]+$/i';
foreach ($strings as $string) {
var_dump($string.' is '.preg_match($pattern, $string));
}
不過不知道為什麼 [email protected]@@1 跟 bbbb:>dd 也符合