我一直试图让正则表达式在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 :(得分:4)
此表达式仅检查单个字母。 变化
$pattern = "/^[a-z]$/";
到
$pattern = "/^[a-z]+$/";
答案 1 :(得分:1)
/^[a-z]$/
这只接受一个带有一个字符的字符串。
尝试:
/^[a-z]+$/