How to check if a string is in a valid format ("XXX-XXX-XXXX") with numbers in C++

1 Answer

0 votes
#include <iostream>
#include <regex>
#include <string>

bool isValidFormat(const std::string& s) {
    std::string pattern = "(\\d{3}-)?\\d{3}-\\d{4}";
    
    std::regex regexPattern(pattern);
    
    return std::regex_match(s, regexPattern);
}

int main() {
    std::string s = "771-290-1652";
    if (isValidFormat(s)) {
        std::cout << "Valid" << std::endl;
    } else {
        std::cout << "Not Valid" << std::endl;
    }

    s = "771-29-162";
    if (isValidFormat(s)) {
        std::cout << "Valid" << std::endl;
    } else {
        std::cout << "Not Valid" << std::endl;
    }

    s = "771-AB1-1620";
    if (isValidFormat(s)) {
        std::cout << "Valid" << std::endl;
    } else {
        std::cout << "Not Valid" << std::endl;
    }
}



/*
run:
 
Valid
Not Valid
Not Valid
 
*/

 



answered Nov 16, 2024 by avibootz
...