-1

I want to get how many time a regex matched in given string in JavaScript.

For example:

var string = "AABBCCaabbcc123!@#"

I want to get:

  • How many upper case in string: 6,
  • How many lower case in string: 6,
  • How many numbers in string: 3,
  • How many special characters in stirng: 3

Is there built-in js functions or simple way to implement this logic?

Thank you very much.

InSync
  • 4,851
  • 4
  • 8
  • 30
박상욱
  • 19
  • 2
  • Please visit [help], take [tour] to see what and [ask]. Do some research, search for related topics on SO; if you get stuck, post a [mcve] of your attempt, noting input and expected output, preferably in a [Stacksnippet](https://blog.stackoverflow.com/2014/09/introducing-runnable-javascript-css-and-html-code-snippets/) – mplungjan Aug 09 '23 at 05:48

1 Answers1

-1

You can try the following way:

function countCharacters(inputStr) {
    //uppercase letters
    var uCount = (inputStr.match(/[A-Z]/g) || []).length;
    
    //lowercase letters
    var lCount = (inputStr.match(/[a-z]/g) || []).length;
    
    //numbers
    var nCount = (inputStr.match(/\d/g) || []).length;
    
    //special characters
    var sCount = (inputStr.match(/[!@#$%^&*()_+{}\[\]:;<>,.?~\\\-]/g) || []).length;
    
    //return an object containing the counts
    return {
        uppercase: uCount,
        lowercase: lCount,
        numbers: nCount,
        specialCharacters: sCount
    };
}

var str = "AABBCCaabbcc123!@#";
var counts = countCharacters(str);

console.log("Uppercase count:", counts.uppercase); //6
console.log("Lowercase count:", counts.lowercase); //6
console.log("Number count:", counts.numbers); //3
console.log("Special character count:", counts.specialCharacters); //3
Mamun
  • 66,969
  • 9
  • 47
  • 59