我查看并发现了很多有关正则表达式的信息。它有充分的记录,但是我显然是个白痴,或者看这个问题的时间太长了!
我需要匹配的模式是任意数量的大写,小写和数字,至少8个字符。我不想接受其他任何内容,例如非字母数字字符(_ * ^&等)
我的努力是
^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])\S{8,}$
可悲的是,当我使用https://regex101.com/时,它与以下任何内容都不匹配
aaaaaaaa
AAAAAAAA
00000000
asdfFDSA167
#fFaf9374A
12345678
123456NBh
其中2个有效,但我不明白为什么会有问题
最终目标是在pattern
的{{1}}属性中使用它(HTML 5输入模式=“” />`)
答案 0 :(得分:1)
我相信这就是您要寻找的:^[a-zA-Z0-9]{8,}$
或者也许是这样的:^[a-z]{8,}|[A-Z]{8,}|[0-9]{8,}$
第一个将匹配字母/数字的任何组合,第二个将仅匹配相似字符的序列。很难给出确切的答案。
编辑: 我犯了一个错误,但已解决
答案 1 :(得分:0)
尝试一下:
<?php
CORE::$ObjClassInstABS = new class extends \ArrayIterator {
private $container = [];
public function __construct(array $container)
{
$this->container = [
'ABS' => [
'DATA' => [
'USERDATAMANAGER' => new class {},
'PRODDATAMANAGER' => new class {},
],
],
];
}
public function offsetExists($offset)
{
return isset($this->container[$offset]);
}
public function offsetGet($offset)
{
return isset($this->container[$offset]) ? $this->container[$offset] : null;
}
public function offsetSet($offset, $value)
{
if (is_null($offset)) {
$this->container[] = $value;
} else {
$this->container[$offset] = $value;
}
}
public function offsetUnset($offset)
{
unset($this->container[$offset]);
}
};