使用PHP仅允许字符串中的[a-z][a-z][0-9]

使用PHP仅允许字符串中的[a-z][a-z][0-9],php,regex,Php,Regex,如何获取只包含a到z、a到z、0到9和一些符号的字符串?实现这一点的最佳且最灵活的方法是使用正则表达式。 但我不知道如何在PHP中实现这一点,但本文可以提供帮助 您可以像这样过滤它: $text = preg_replace("/[^a-zA-Z0-9]+/", "", $text); 至于一些符号,您应该更具体一些您可以使用preg\u match测试您的字符串(让$str): if(preg_match("/^[a-zA-Z0-9]+$/", $str) == 1) { // st

如何获取只包含a到z、a到z、0到9和一些符号的字符串?

实现这一点的最佳且最灵活的方法是使用正则表达式。
但我不知道如何在PHP中实现这一点,但本文可以提供帮助

您可以像这样过滤它:

$text = preg_replace("/[^a-zA-Z0-9]+/", "", $text);
至于一些符号,您应该更具体一些您可以使用
preg\u match
测试您的字符串(让
$str
):

if(preg_match("/^[a-zA-Z0-9]+$/", $str) == 1) {
    // string only contain the a to z , A to Z, 0 to 9
}

如果您需要更多符号,可以将它们添加到
]

之前,这两个正则表达式都可以:

$str = preg_replace('~[^a-z0-9]+~i', '', $str);
或:


不需要正则表达式,您可以使用以下函数:

  • :检查字母数字字符
  • :检查字母字符
  • :检查控制字符
  • :检查数字字符
  • :检查除空格外的任何可打印字符
  • :检查小写字符
  • :检查可打印字符
  • :检查任何非空白或字母数字字符的可打印字符
  • :检查空白字符
  • :检查大写字符
  • :检查表示十六进制数字的字符
在您的情况下,请使用
ctype\u alnum
,例如:

if (ctype_alnum($str)) {
    //...
}
例如:

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

    }
}

快捷方式如下所示:

if (preg_match('/^[\w\.]+$/', $str)) {
    echo 'Str is valid and allowed';
} else
    echo 'Str is invalid';
在这里:

// string only contain the a to z , A to Z, 0 to 9 and _ (underscore)
\w - matches [a-zA-Z0-9_]+

希望有帮助

请提供更多细节。你的需要是什么?这是一个模糊的问题,但没有必要轻率地将它抛诸脑后。有一些非常糟糕的问题可能需要这种治疗,但这不是其中之一��s�o�N�U� �N�我�G�A.�M�,� �s�A.�我�N�D�H�A.�v�我我想消除符号…像这样使用,$strchr=”��s�o�N�U� �N�我�G�A.�M�,� �s�A.�我�N�D�H�A.�v�“我”$bodytag=str_替换(“�", "", $很好,它工作了…那已经工作了…我刚刚重新启动了我的mozilla…我得到了…非常感谢大家…你完全正确,我应该在
^
$
中包围该模式,以防止与
'?abs???
匹配,例如,整个使用
//code>分隔符。对不起,谢谢。
// string only contain the a to z , A to Z, 0 to 9 and _ (underscore)
\w - matches [a-zA-Z0-9_]+