Necesito condiciones de expresiones regulares que coincidan con cualquier cadena que satisfaga la siguiente condición:
Probé /(?<!prefix )Mr.[a-zA-Z]/ hasta ahora, pero no funcionó.
(Mr|Mrs|Ms|Dr|Er)\.[a-zA-Z]+Explicación:
(Mr|Mrs|Ms|Dr|Er) : utiliza agrupación y alternancia para coincidir con cualquiera de los siguientes: Mr , Mrs , Ms , Dr , Er
\. - coincide con el literal . personaje
[a-zA-Z]+ : coincide con una o más apariciones de una letra mayúscula/minúscula.
const regex = /(Mr|Mrs|Ms|Dr|Er)\.[a-zA-Z]+/; function validate(str){ console.log(`${str} matches regex? ${regex.test(str)}`) } validate("Mr.John") validate("Mrs.John") validate("Ms.John") validate("Dr.John") validate("Er.John") validate("Spectric.Spectric")Para que coincida con todas las variantes, puede escribir el patrón como:
^(?:Mrs?|Ms|[DE]r)\.Demostración de expresiones regulares
Si tiene que haber un carácter A-Za-z a continuación, también puede hacer coincidir los caracteres de espacio en blanco opcionales que preceden a la clase de carácter
^(?:Mrs?|Ms|[DE]r)\.\s*[A-Za-z]