正则表达式无法输入小写,大写,数字和至少8个字符

时间:2019-03-15 18:52:13

标签: javascript regex

我查看并发现了很多有关正则表达式的信息。它有充分的记录,但是我显然是个白痴,或者看这个问题的时间太长了!

我需要匹配的模式是任意数量的大写,小写和数字,至少8个字符。我不想接受其他任何内容,例如非字母数字字符(_ * ^&等)

我的努力是

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])\S{8,}$

可悲的是,当我使用https://regex101.com/时,它与以下任何内容都不匹配

aaaaaaaa
AAAAAAAA
00000000
asdfFDSA167
#fFaf9374A
12345678
123456NBh

其中2个有效,但我不明白为什么会有问题

最终目标是在pattern的{​​{1}}属性中使用它(HTML 5输入模式=“” />`)

2 个答案:

答案 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]);
    }
};

DEMO