2013-12-17 56 views

回答

3

您當前的範圍只支持大寫字母,所以你需要/i修改:

$input = 'adddd ### AAAA????'; 
preg_match('/^[\x20-\x5A]+$/i', $input); // int(1) 

另外,增加額外的字母範圍:

preg_match('/^[\x20-\x5A\x61-\x7A]+$/', $input)) 
+0

我的不好 - 我忘記了我正在開發的系統是A-Z不是a-z,但是我確實想支持這兩者。 – AlexZ

+0

對於a-z也是'/ i'帳戶 – AlexZ

+0

@AlexZ我的答案的兩個部分都是小寫字母。 –

-1

您需要使用的preg_match的第三個參數,將其分配給一個變量

preg_match("/^[\x20-\x5A]+$/u", $input, $matches)

standard return of this function是1或0/FALSE

例如...

if(preg_match("/^[\x20-\x5A]+$/u", $input, $matches)) 
{ 
    var_dump($matches); 
} 
+0

這似乎並沒有任何工作http://sandbox.onlinephpfunctions.com/code/f4ba0be1a1483fa24d1550df1f6d44179026ae38 – AlexZ

+0

但是那些超出了你的ASCII範圍,用大寫字母'JONES 1234'來試一試,或者改變你的十六進制值來將它擴展爲小寫字母 – Scuzzy

+0

Downvote explain please: 3 – Scuzzy