2015-08-27 66 views
0

我試圖實現數字輸入加上字母X或X的驗證。到目前爲止,我有:PHP的正則表達式數字加一個字母

if(preg_match('/[^0-9xX]+$/', $data)) return 'error'; 

它正確地返回錯誤的所有案件,但A123。有沒有人知道爲什麼?

+0

顯示輸入輸出 –

+0

輸入:a123輸出:非錯誤 – Tom

+0

'數字輸入加上字母X或x'是否將此輸入視爲有效輸入或無效輸入? – NeverHopeless

回答

1

在正則表達式的開始使用^來檢查是否完整的字符串,而不是子字符串。

if(preg_match('/^[0-9xX]+$/', $data)) 
    return 'error'; 
+0

使用*而不是加 –

+0

@AvinashRaj這將使該組可選,OP不希望空的內容有效 – Tushar

0

試試這個:

if(preg_match('/^[0-9x]+$/i', $data)){ 
echo 'match'; 
}else{ 
echo 'no match'; 
} 

它喜歡你的,只是反過來。 ^是字符串的開頭。 $用於字符串的結尾。所以整個字符串必須匹配模式。

0
if(!preg_match('/^([0-9]+|[xX])$/', $data)) return 'error'; 

這也許會更好, 的權利的情況下匹配,以及匹配結果前添加!

0

我不明白。

if(preg_match('/^[0-9xX]+$/', $data)) return 'error'; 

還是當我們進入123

我很抱歉,如果我做的誤解不返回錯誤。

if(preg_match('/[0-9]xX$/', $data)) return 'error'; 

所有的數字後面跟着xX。 CMIIW。

相關問題