我必须制作一个正则表达式,无法弄清楚语法

时间:2016-04-09 13:20:54

标签: javascript regex

正则表达式的规则是:至少8个字符,至少使用以下之一:(&%$ ^#@ =),至少有2个不在开头或结尾的数字NOR可以在密码内彼此相邻,至少有2个大写和2个小写字符。这就是我到目前为止所拥有的。我无法弄清楚如何使正则表达式不关心字符的顺序。此外,我无法弄清楚如何使整个事物需要8个字符。

/^[&%$^#@=]{1,}.[0-9(?!0-9)0-9(?!\s)]{2,}[A-Z]{2,}[a-z]{2,}$/;

2 个答案:

答案 0 :(得分:3)

这个经过测试的JavaScript函数包含一个符合验证要求的注释正则表达式:

<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
function byId(id){return document.getElementById(id);}

window.addEventListener('load', onDocLoaded, false);

function onDocLoaded()
{
    byId('srcElem').addEventListener('input', onInputChanged, false);
}

function onInputChanged(evt)
{
    var srcElem = byId('srcElem');
    var curText = srcElem.value;

    // will range from 0 to 350, in steps of 10
    var curHue = (curText.length % 36) * 10;

    var tgt = byId('tgtElem');
    tgt.style.color = 'hsl(' + curHue + ',100%,50%)';
}

</script>
<style>
</style>
</head>
<body>
    <h1 id='tgtElem'>I can change colour...</h1>
    <hr>
    Type here to change the colour of the title (colour cycles every 36 characters)<br>
    <textarea id='srcElem'></textarea>
</body>
</html>

请注意,此正则表达式演示了如何在位于字符串开头的位置应用多个AND逻辑条件。另请注意,上述正则表达式中数字要求的多个条件可以合并为单个断言 - 它们在此处以详细(多个断言样式)表示,以演示所使用的技术。

希望这有帮助!

答案 1 :(得分:1)

这个正则表达式似乎有用

object

<强> Regex Demo

正则表达式细分

(?=^.{8,}$)(?!^\d)(?!.*\d$)(?!.+\d\d)(?=.*[&%$^#@=])(?=(.*[A-Z]){2})(?=(.*[a-z]){2})(?=(.*[0-9]){2})