2011-04-05 285 views
8

我不想preg_match_all ......因为表单字段只允许数字和字母......只是不知道正确的语法是什么...PHP的preg_match的数字和字母,无特殊字符

没有什么奇特的......只需要知道只查找数字和字母的preg_match语句的正确语法。像

preg_match('/^([^.]+)\.([^.]+)\.com$/', $unit) 

但是,这东西看起来不换号太....

+3

什么是你的问题? – 2011-04-05 14:16:53

+1

请更精确地说,你想要做什么。 – 2011-04-05 14:17:18

+0

你可以提供更多关于你想要在这里实现的细节吗?也许是一个例子。你想匹配所有的alphanum还是第一个,还是其他的? – whoughton 2011-04-05 14:17:33

回答

25

如果你只是想确保字符串只包含字母数字字符。 A-Z,a-z,0-9你不需要使用正则表达式。

使用ctype_alnum()

从文档实例:

<?php 
$strings = array('AbCd1zyZ9', 'foo!#$bar'); 
foreach ($strings as $testcase) { 
    if (ctype_alnum($testcase)) { 
     echo "The string $testcase consists of all letters or digits.\n"; 
    } else { 
     echo "The string $testcase does not consist of all letters or digits.\n"; 
    } 
} 
?> 

上面的例子将输出:

The string AbCd1zyZ9 consists of all letters or digits. 
The string foo!#$bar does not consist of all letters or digits. 
+3

我不知道'ctype_alnum'。 +1 – 2011-04-05 14:21:21

2

如果你想匹配大于1,那么你需要,但为我们提供了一些代码,我们可以帮助更好。

虽然,在此期间:

preg_match("/([a-zA-Z0-9])/", $formContent, $result); 
print_r($result); 

:)

10
if(preg_match("/[A-Za-z0-9]+/", $content) == TRUE){ 

} else { 

} 
+4

它不会让我编辑它,因为它没有足够的字符,但(“/(A-Za-z0-9)+ /”,$ content)应该是(“/ [A-Za-z0-9 ] + /“,$ content)。注意[而不是( – emilyk 2013-04-03 17:54:42

+1

@emilyk尝试了两次来处理编辑来解决这个问题,但每次都被拒绝,所以我们会坚持不工作的版本。 – bicycle 2013-06-10 08:54:23