Dada la string str , la tarea es verificar si la string dada es un SSN (Número de Seguro Social) válido o no mediante el uso de Expresión regular .
El SSN (Número de Seguro Social) válido debe cumplir las siguientes condiciones:
- Debe tener 9 dígitos.
- Debe estar dividido en 3 partes por guión (-).
- La primera parte debe tener 3 dígitos y no debe ser 000, 666 o entre 900 y 999.
- La segunda parte debe tener 2 dígitos y debe ser del 01 al 99.
- La tercera parte debe tener 4 dígitos y debe ser de 0001 a 9999.
Ejemplos:
Entrada: str = “856-45-6789”;
Salida: verdadero
Explicación: La string dada satisface todas las condiciones mencionadas anteriormente. Por lo tanto, es un SSN (Número de Seguro Social) válido.Entrada: string = “000-45-6789”;
Salida: falso
Explicación: La string dada comienza con 000. Por lo tanto, no es un SSN (Número de Seguro Social) válido.Entrada: str = “856-452-6789”;
Salida: falso
Explicación: La segunda parte de esta string tiene 3 dígitos. Por lo tanto, no es un SSN (Número de Seguro Social) válido.Entrada: string = “856-45-0000”;
Salida: falso
Explicación: La tercera parte de esta string es 0000. Por lo tanto, no es un SSN (Número de Seguro Social) válido.
Enfoque: La idea es usar la expresión regular para resolver este problema. Se pueden seguir los siguientes pasos para calcular la respuesta.
- Consigue la cuerda.
- Cree una expresión regular para verificar un SSN (Número de Seguro Social) válido como se menciona a continuación:
regex = "^(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4}$";
- Dónde:
- ^ representa el comienzo de la string.
- (?!666|000|9\\d{2})\\d{3} representa que los primeros 3 dígitos no deben comenzar con 000, 666 o entre 900 y 999.
- – representa la string seguida de un guión (-).
- (?!00)\\d{2} representa que los siguientes 2 dígitos no deben comenzar con 00 y deben ser cualquiera del 01 al 99.
- – representa la string seguida de un guión (-).
- (?!0{4})\\d{4} representa los siguientes 4 dígitos que no pueden ser 0000 y debería ser cualquiera entre 0001 y 9999.
- $ representa el final de la string.
- Haga coincidir la string dada con la expresión regular. En Java, esto se puede hacer usando Pattern.matcher() .
- Devuelve verdadero si la string coincide con la expresión regular dada; de lo contrario, devuelve falso.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program to check valid // SSN (Social Security Number) using // regex. import java.util.regex.*; class GFG { // Function to validate // SSN (Social Security Number). public static boolean isValidSSN(String str) { // Regex to check SSN // (Social Security Number). String regex = "^(?!666|000|9\\d{2})\\d{3}" + "-(?!00)\\d{2}-" +"(?!0{4})\\d{4}$"; // Compile the ReGex Pattern p = Pattern.compile(regex); // If the string is empty // return false if (str == null) { return false; } // Pattern class contains matcher() // method to find matching between // given string and regular expression. Matcher m = p.matcher(str); // Return if the string // matched the ReGex return m.matches(); } // Driver Code. public static void main(String args[]) { // Test Case 1: String str1 = "856-45-6789"; ; System.out.println(isValidSSN(str1)); // Test Case 2: String str2 = "000-45-6789"; ; System.out.println(isValidSSN(str2)); // Test Case 3: String str3 = "856-452-6789"; System.out.println(isValidSSN(str3)); // Test Case 4: String str4 = "856-45-0000"; System.out.println(isValidSSN(str4)); } }
Python3
# Python3 program to validate # SSN (Social Security Number) # using regular expression import re # Function to validate SSN # (Social Security Number). def isValidSSN(str): # Regex to check valid # SSN (Social Security Number). regex = "^(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4}$" # Compile the ReGex p = re.compile(regex) # If the string is empty # return false if (str == None): return False # Return if the string # matched the ReGex if(re.search(p, str)): return True else: return False # Driver code # Test Case 1: str1 = "856-45-6789" print(isValidSSN(str1)) # Test Case 2: str2 = "000-45-6789" print(isValidSSN(str2)) # Test Case 3: str3 = "856-452-6789" print(isValidSSN(str3)) # Test Case 4: str4 = "856-45-0000" print(isValidSSN(str4)) # This code is contributed by avanitrachhadiya2155
C++
// C++ program to validate the // SSN (Social Security Number) // using Regular Expression #include <iostream> #include <regex> using namespace std; // Function to validate the SSN // (Social Security Number) bool isValidSSN(string str) { // Regex to check valid SSN // (Social Security Number) const regex pattern("^(?!666|000|9\\d{2})" "\\d{3}-(?!00)" "\\d{2}-(?!0{4})\\d{4}$"); // If the SSN (Social Security Number) // is empty return false if (str.empty()) { return false; } // Return true if the SSN // (Social Security Number) // matched the ReGex if (regex_match(str, pattern)) { return true; } else { return false; } } // Driver Code int main() { // Test Case 1: string str1 = "856-45-6789"; cout << isValidSSN(str1) << endl; // Test Case 2: string str2 = "000-45-6789"; cout << isValidSSN(str2) << endl; // Test Case 3: string str3 = "856-452-6789"; cout << isValidSSN(str3) << endl; // Test Case 4: string str4 = "856-45-0000"; cout << isValidSSN(str4) << endl; return 0; } // This code is contributed by yuvraj_chandra
true false false false
Publicación traducida automáticamente
Artículo escrito por prashant_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA