/ / Validación de Regex múltiple para un solo valor - alfanumérico con emisión de caracteres especiales permitidos - javascript, jquery, regex, validación

Múltiples validación Regex para valor único - alfanumérico con la posibilidad de caracteres especiales permitidos - javascript, jquery, regex, validación

A continuación se encuentra mi expresión regular para validar el nombre de entrada-Inicia con caracteres alfanuméricos, permitidos especiales. Acepta "sample # @ # @ invalid" donde la validación solo permite () [].-_ & Caracteres. ¿Dónde estoy haciendo mal alguna ayuda?

if(!/[A-Za-z0-9s)(][._&-]+$/.test(inputText)){
alert("Field name should be alphanumeric and allowed special characters _ . - [ ] ( ) &");
}
if(!/^[A-Za-z0-9]/.test(inputText)){
alert("Field name must start with an alphanumeric");
}

Respuestas

3 para la respuesta № 1

En lugar de negar la prueba, use una expresión regular que invierta la clase de caracteres:

if(/[^A-Za-z0-9s)(][._&-]/.test(inputText)){

Dado que esto no está anclado, coincidirá con cualquier carácter fuera del conjunto permitido en cualquier parte del texto de entrada.

function validate() {
var inputText = document.getElementById("inputText").value;
if (/[^A-Za-z0-9s)(][._&-]/.test(inputText)) {
alert("Field name should be alphanumeric and alllowed  special characters _ . - [ ] ( ) &");
}
if (/^[^A-Za-z0-9]/.test(inputText)) {
alert("Field name must start with an alphanumeric");
}
}

MANIFESTACIÓN


0 para la respuesta № 2

Esto es para comenzar con caracteres alfanuméricos y luego alfanuméricos + caracteres especiales en adelante.

/^[A-Za-z0-9][A-Za-z0-9()[]._&-]+$/

Este comienza con caracteres alfanuméricos y luego solo caracteres especiales en adelante.

/^[A-Za-z0-9][()[]._&-]+$/

Aviso que he añadido $ Firme al final de la expresión regular para anclarlo al final de la cadena.


0 para la respuesta № 3

Su expresión regular coincide con la parte "no válida" de la cadena de entrada dada, ya que este sufijo es perfectamente válido en función de su expresión regular dada. Tal vez debería simplemente agregar un comienzo ^ personaje en tu regex como en tu segundo Entonces no coincidiría con la cadena dada.

if(!/^[A-Za-z0-9s)(][._&-]+$/.test(inputText)){
alert("Field name should be alphanumeric and allowed special characters _ . - [ ] ( ) &");

}
if(!/^[A-Za-z0-9]/.test(inputText)){
alert("Field name must start with an alphanumeric");
}

Por supuesto, preferiría la respuesta de Sabuj Hassan, ya que combina ambos cheques en uno.