2011-08-22 38 views
0

我一直在試圖讓正則表達式現在在PHP中工作了相當長的一段時間。問題是它不接受它應該接受的東西,而接受不應該的東西。我從互聯網上嘗試了不同的表情,因爲我可能沒有正確地寫他們自己。它仍然沒有工作,沒有馬瑟我多麼瑣碎表情嘗試,所以我認爲有在我的代碼其他的東西,是造成這些問題。我爲此將我的代碼減少到最低限度,但仍然無效,我不明白爲什麼。正則表達式PHP - 不工作

我真正想要的是檢查,如果文本只包含數字,字母和一些特殊字符,但要確保表達式本身是沒有問題的,我用我能找到的最簡單的表達;只是檢查信件。我已經嘗試了很多東西,比如在函數中寫入模式,而不是將其保存爲變量等,但沒有任何幫助。這是它現在看起來的所有代碼。

<?php 

$pattern = "/^[a-z]$/"; 

if($_POST && !empty($_POST['input'])) 
{ 
    if(preg_match($pattern, $_POST['input'])) 
    { 
     echo 'Correct'; 
    } 
    else 
    { 
     echo 'Wrong'; 
    } 
} 
?> 

<html> 
<body> 

<form method="post" action=""> 
<p><input type="text" name="input"></p> 
<p><input type="submit" name="submit"></p> 
</form> 

</body> 
</html> 

幫助將不勝感激!

+0

你說,「我用我能找到的最簡單的表達,」但說實話,最簡單的表述應該是像「*」。 –

+0

@ root45'*'不是有效的正則表達式。 –

+0

最簡單的想象的正則表達式是''^或可能'.'。 – tripleee

回答

4

該表達式僅檢查單個字母。 更改

$pattern = "/^[a-z]$/";

$pattern = "/^[a-z]+$/";

+0

非常感謝!你救了我的一天! –

1
/^[a-z]$/ 

這將只接受一個字符的字符串。

嘗試:

/^[a-z]+$/ 
+0

非常感謝!它現在有效! –