Javascript RegExp生成包含4个小写字母,4个大写字母和4个数字的字符串

免费电话Panwal

如何在Javascript中使用以下条件生成随机数

  1. 字符串应至少包含[az]中的4个小写字母
  2. 字符串应至少包含[AZ]中的4个大写字母
  3. 字符串应至少包含[0-9]中的4个数字

注意:由于旧版原因,我不想使用任何JS库

我尝试了下面的代码,但例如与标准不匹配,有时它根本不包含数字...。

function randomString(length, chars) {
    var mask = '';
    if (chars.indexOf('a') > -1) mask += 'abcdefghijklmnopqrstuvwxyz';
    if (chars.indexOf('A') > -1) mask += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    if (chars.indexOf('#') > -1) mask += '0123456789';
    var result = '';
    for (var i = length; i > 0; --i) result += mask[Math.round(Math.random() * (mask.length - 1))];
    return result;
}
document.write(randomString(12, 'aA#'));

有更好的方法吗?

soktinpk

操作方法如下:生成一个代表您的条件的数组,将其随机排列并填充该数组。

例子:

function makeRandomString(criteria) {

  // From http://stackoverflow.com/q/2450954/3371119
  function shuffle(array) {
      var currentIndex = array.length,
        temporaryValue, randomIndex;

      // While there remain elements to shuffle...
      while (0 !== currentIndex) {

        // Pick a remaining element...
        randomIndex = Math.floor(Math.random() * currentIndex);
        currentIndex -= 1;

        // And swap it with the current element.
        temporaryValue = array[currentIndex];
        array[currentIndex] = array[randomIndex];
        array[randomIndex] = temporaryValue;
      }

      return array;
  }
  // Choose a random character from a string
  function chooseRandom(str) {
      return str[Math.floor(Math.random() * str.length)];
  }
  // Shuffle the criteria
  shuffle(criteria);
  var result = "";
  // Build the resulting string by choosing a random character from each part
  for (var i = 0; i < criteria.length; ++i) result += chooseRandom(criteria[i]);
  return result;
}

用法示例:

// Some constants explaining the criteria
var lowercase = "abcdefghijklmnopqrstuvwxyz";
var uppercase = lowercase.toUpperCase();
var numbers = "0123456789";
// Note: if you don't like typing all that, change the names to L, N, and U
var criteria = [lowercase, lowercase, lowercase, lowercase, // 4 lowercase
                numbers, numbers, numbers, numbers, // 4 numbers
                uppercase, uppercase, uppercase, uppercase // 4 uppercase
               ];
console.log(makeRandomString(criteria));

甚至更好(更少键入):

function repeat(elem, n) {
  var result = [];
  for (var i = 0; i < n; ++i) result.push(elem);
  return result;
}

var criteria = repeat(lowercase, 4)
              .concat(repeat(uppercase, 4))
              .concat(repeat(numbers, 4));
console.log(makeRandomString(criteria));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript,以大写字母拆分字符串并隔离大写字母

来自分类Dev

检查字符串是否至少包含10位数字,12个大写字母和20个小写字母

来自分类Dev

JavaScript-正则表达式,用于检查大写和小写字母的字符串

来自分类Dev

如何确定一个字符串至少包含一个大写字母,一个小写字母,一个数字和一个标点字符?

来自分类Dev

在JavaScript中查找字符串的所有小写和大写字母组合

来自分类Dev

正则表达式匹配列表中至少包含1个大写字母,1个小写字母,1个数字和1个特殊字符的字符串

来自分类Dev

正则表达式,用于字母和数字的组合,长度为5到30个字母,具有至少4个大写字母,2个小写字母和至少1个数字

来自分类Dev

至少包含一个大写字母,一个小写字母,一个特殊字符,一位数字和一个空格的字符串

来自分类Dev

至少包含一个大写字母,一个小写字母,一个特殊字符,一位数字和一个空格的字符串

来自分类Dev

Javascript:在字符串中,替换大写字母及其后的所有字母

来自分类Dev

JavaScript大写字母:每隔一个字母不同的方向

来自分类Dev

Javascript:如何确定文本字符串中的哪些字符是大写字母?

来自分类Dev

查找大写字母,中间包含一个小写字母

来自分类Dev

如何检查JAVA中是否有2个大写字母,3个小写字母和1个数字

来自分类Dev

我需要一个Perl脚本来在字符串中找到至少一个大写字母,一个小写字母,一个特殊字符,一个数字和一个空白

来自分类Dev

用于AlphaNumeric和大写字母键入的Javascript

来自分类Dev

如何检查更改后的文本输入字符串是否具有小写字母Javascript

来自分类Dev

如何检查更改后的文本输入字符串是否具有大写字母Javascript

来自分类Dev

如何反转包含以大写字母,小写字母开头的字符串的元素的列表

来自分类Dev

在stringr中拆分大写字母紧跟小写字母的字符串

来自分类Dev

匹配至少一个小写字母和至少一个大写字母

来自分类Dev

用小写字母和连字符替换整个字符串中的大写字母

来自分类Dev

当特定的网址至少包含一个大写字母时,如何重定向到小写字母

来自分类Dev

如何验证字符串中相同,重复的大写字母和小写字母?

来自分类Dev

字符串长度、大写字母个数和字符串中的数字个数

来自分类Dev

用大写字母和小写字母替换大写字母

来自分类Dev

如何按字母顺序对字符串进行排序,使小写字母排在大写字母之前?

来自分类Dev

如何按字母顺序对字符串进行排序,使小写字母排在大写字母之前?

来自分类Dev

preg_match捕获两个大写字母,3个数字和2个大写字母,且不超过7个数字

Related 相关文章

  1. 1

    Javascript,以大写字母拆分字符串并隔离大写字母

  2. 2

    检查字符串是否至少包含10位数字,12个大写字母和20个小写字母

  3. 3

    JavaScript-正则表达式,用于检查大写和小写字母的字符串

  4. 4

    如何确定一个字符串至少包含一个大写字母,一个小写字母,一个数字和一个标点字符?

  5. 5

    在JavaScript中查找字符串的所有小写和大写字母组合

  6. 6

    正则表达式匹配列表中至少包含1个大写字母,1个小写字母,1个数字和1个特殊字符的字符串

  7. 7

    正则表达式,用于字母和数字的组合,长度为5到30个字母,具有至少4个大写字母,2个小写字母和至少1个数字

  8. 8

    至少包含一个大写字母,一个小写字母,一个特殊字符,一位数字和一个空格的字符串

  9. 9

    至少包含一个大写字母,一个小写字母,一个特殊字符,一位数字和一个空格的字符串

  10. 10

    Javascript:在字符串中,替换大写字母及其后的所有字母

  11. 11

    JavaScript大写字母:每隔一个字母不同的方向

  12. 12

    Javascript:如何确定文本字符串中的哪些字符是大写字母?

  13. 13

    查找大写字母,中间包含一个小写字母

  14. 14

    如何检查JAVA中是否有2个大写字母,3个小写字母和1个数字

  15. 15

    我需要一个Perl脚本来在字符串中找到至少一个大写字母,一个小写字母,一个特殊字符,一个数字和一个空白

  16. 16

    用于AlphaNumeric和大写字母键入的Javascript

  17. 17

    如何检查更改后的文本输入字符串是否具有小写字母Javascript

  18. 18

    如何检查更改后的文本输入字符串是否具有大写字母Javascript

  19. 19

    如何反转包含以大写字母,小写字母开头的字符串的元素的列表

  20. 20

    在stringr中拆分大写字母紧跟小写字母的字符串

  21. 21

    匹配至少一个小写字母和至少一个大写字母

  22. 22

    用小写字母和连字符替换整个字符串中的大写字母

  23. 23

    当特定的网址至少包含一个大写字母时,如何重定向到小写字母

  24. 24

    如何验证字符串中相同,重复的大写字母和小写字母?

  25. 25

    字符串长度、大写字母个数和字符串中的数字个数

  26. 26

    用大写字母和小写字母替换大写字母

  27. 27

    如何按字母顺序对字符串进行排序,使小写字母排在大写字母之前?

  28. 28

    如何按字母顺序对字符串进行排序,使小写字母排在大写字母之前?

  29. 29

    preg_match捕获两个大写字母,3个数字和2个大写字母,且不超过7个数字

热门标签

归档