正则表达式PHP - 不起作用

时间:2011-08-22 13:30:39

标签: php regex

我一直试图让正则表达式在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>

非常感谢帮助!

2 个答案:

答案 0 :(得分:4)

此表达式仅检查单个字母。 变化

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

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

答案 1 :(得分:1)

/^[a-z]$/

这只接受一个带有一个字符的字符串。

尝试:

/^[a-z]+$/