我正在检查用户输入的用户名
我试图使用preg_match()在PHP中验证用户名,但我似乎无法让它按照我想要的方式工作。我要求preg_match():
即字母数字点破折号和下划线,我尝试了来自htaccess的正则表达式,就像这样
([A-Za-z0-9.-_]+)
像这样,但它似乎不起作用,它给出了简单的alpha用户名的假。
$text = 'username';
if (preg_match('/^[A-Za-z0-9.-_]$/' , $text)) {
echo 'true';
} else {
echo 'false';
}
我怎样才能让它工作?
我将在这样的功能中使用它
//check if username is valid
function isValidUsername($str) {
return preg_match('/[^A-Za-z0-9.-_]/', $str);
}
我在preg_match()和用户名中尝试了answwer,但正则表达式中仍然有问题。
更新
我在函数内部使用了xdazz给出的代码,就像这样。
//check if username is valid
function isValidUsername($str) {
if (preg_match('/^[A-Za-z0-9._-]+$/' , $str)) {
return true;
} else {
return false;
}
}
检查它就像
$text = 'username._-546_546AAA';
if (isValidUsername($text) === true) {
echo 'good';
}
else{
echo 'bad';
}
只需将<code>-
$text = 'username';
if (preg_match('/^[A-Za-z0-9._-]+$/' , $text)) {
echo 'true';
} else {
echo 'false';
}
连字符-
在用于范围的[…]
,具有特殊含义。
它应该在开始或者在最后或者像< code>([A-Za-z0-9。_-] )否则它将匹配< code >之间的所有字符。ASCII字符集中的和< code>_。
阅读类似的文章包括连字符在一个正则表达式字符括号?
最好使用与 [A-Za-z0-9_] 匹配的
\w
。在较短的形式中使用 [\w.-]
上一个正则表达式模式的含义是什么?
此处 [^..]
用于否定字符集。如果你在 ^[...]
之外使用它,那么它表示行/字符串的开头。
[^A-Za-z0-9.-_] any character except:
'A' to 'Z',
'a' to 'z',
'0' to '9',
'.' to '_'
您遗漏了< code> (
表示一个或多个字符,< code>*表示零个或多个字符),或者您的正则表达式只匹配一个带有一个字符的字符串。
if (preg_match('/^[A-Za-z0-9._-]+$/' , $text)) {
echo 'true';
} else {
echo 'false';
}
我正在尝试构建一个正则表达式来验证用户名,该用户名将包含字母数字字符,并且应该允许<代码>(dot)(撇号)和-(破折号),我尝试了以下正则表达式,但它们不起作用 <代码>/^[a-zA-Z0-9\.-]$/<代码> 请帮帮忙
所有: 我想做的是使用正则表达式匹配一个只允许[a-Za-z0-9_-]的字符串,格式应该是: 仅从[A-Za-z0-9]开始,然后是[A-Za-z0-9_-]。中间可能有[_-],但如果有,则只允许一次(两个_-,但每个都只有一次机会),并以[A-Za-z0-9]结束。 我只知道如何匹配字母数字字符、破折号和下划线,但不知道如何限制它们的出现时间。 谢谢
我对正则表达式很陌生。我需要构造一个正则表达式,如果在下面的代码中使用,它将生成一个只有字母(大小写)、数字、、、和。 以下表达式不起作用:。它替换了一些字母,而不是所有不需要的字符。为什么它不起作用?
我想做一个正则表达式来匹配这些字符串之一:、、、。 我的正则表达式只能接受以下字符串(而不是其他单词): 这是我当前的正则表达式,但它不能按预期工作: 编辑 如果在我的字符串中它们是: 如果它们是其他单词或符号,则返回 false。 谢谢大家。
问题内容: 我正在使用正则表达式来验证字符串中的特定格式。该字符串将成为游戏规则。 示例:根据规则,“ DX 3”也可以,但是“ DX 14”也可以。。。我知道如何查看字符串并找到一个或多个“数字”,因此问题在于正则表达式将也匹配34,这个数字超出了规则的“范围” … 我是否缺少有关正则表达式的功能?还是根本不可能? 问题答案: 不幸的是,没有简单的方法可以在正则表达式中定义范围。如果要使用范围1