2011-08-22 37 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

非常感谢!它现在有效! –