如果php字符串只包含英文字母和数字,如何检查?

时间:2012-02-19 17:18:22

标签: php regex

在JS中我使用了这段代码:

if(string.match(/[^A-Za-z0-9]+/))

但我不知道,如何在PHP中完成。

10 个答案:

答案 0 :(得分:75)

使用preg_match()

if (!preg_match('/[^A-Za-z0-9]/', $string)) // '/[^a-z\d]/i' should also work.
{
  // string contains only english letters & digits
}

答案 1 :(得分:25)

if(ctype_alnum($string)) {
    echo "String contains only letters and numbers.";
}
else {
    echo "String doesn't contain only letters and numbers.";
}

答案 2 :(得分:9)

例如,您可以使用preg_match()功能。

if (preg_match('/[^A-Za-z0-9]+/', $str))
{
  // ok...
}

答案 3 :(得分:7)

查看快捷方式

if(!preg_match('/[^\W_ ] /',$string)) {

}

class [^\W_]匹配任何字母或数字,但不是下划线。并注意!符号。它将使您免于扫描整个用户输入。

答案 4 :(得分:5)

if(preg_match('/[^A-Za-z0-9]+/', $str)) {
    // ...
}

答案 5 :(得分:2)

如果你需要检查它是否是英文。你可以使用以下功能。可能会帮助别人......

function is_english($str)
{
    if (strlen($str) != strlen(utf8_decode($str))) {
        return false;
    } else {
        return true;
    }
}

答案 6 :(得分:1)

if(preg_match('/^[A-Za-z0-9]+$/i', $string)){ // '/^[A-Z-a-z\d]+$/i' should work also
// $string constains both string and integer
}

胡萝卜在错误的位置,因此可以搜索除方括号内的所有内容。当胡萝卜在外面时,它将搜索方括号中的内容。

答案 7 :(得分:0)

PHP可以使用if($(window).width() >= 1025){ $(window).scroll(function(){ /** your function code here **/ }); }else{ $(window).unbind('scroll'); } 将字符串与正则表达式进行比较,如下所示:

preg_match(regex, string)

答案 8 :(得分:0)

if (preg_match('/^[\w\s?]+$/si', $string)) {
    // input text is just English or Numeric or space
}

答案 9 :(得分:0)

以下代码会处理特殊字符和空格

$string = 'hi, how are you ?';
if (!preg_match('/[^A-Za-z0-9 #$%^&*()+=\-\[\]\';,.\/{}|":<>?~\\\\]+/', $string)) // '/[^a-z\d]/i' should also work.
{
    echo 'english';
}else
{
    echo 'non-english';
}