Consulta javascript y expresiones regulares

Iniciado por Yaldabaot, 19 Marzo 2019, 05:50 AM

0 Miembros y 1 Visitante están viendo este tema.

Yaldabaot

Hola amigos del foro!!, tengo una expresión regular que me sirve en las páginas y todo y con muchos otros textos pero con un texto en especìfico no me sirve!!

Esta es la expresión regular:

Código (javascript) [Seleccionar]


/^(?!.*WHERE.*|.*FROM.*|.*SELECT.*|.*UPDATE.*|.*DROP.*|.*INSERT.*|.*DELETE.*|.*ALTER.*|.*TABLE.*|.*TRUNCATE.*|.*DATABASE.*)[A-Za-zÑñÁÉÍÓÚáéíóú,'-.1234567890\s]+$/



La tengo implementada así


Código (javascript) [Seleccionar]


function validar_textolibre(texto){

//Creamos un objeto


object=document.getElementById(texto);
valueForm=object.value;

object2 = valueForm.replace("\n"," ");



object3 = object2.toUpperCase();
   


var objRegExp  =  /^(?!.*WHERE.*|.*FROM.*|.*SELECT.*|.*UPDATE.*|.*DROP.*|.*INSERT.*|.*DELETE.*|.*ALTER.*|.*TABLE.*|.*TRUNCATE.*|.*DATABASE.*)[A-Za-zÑñÁÉÍÓÚáéíóú,'-.1234567890\s]+$/; //Valida que contenga espacios y letras únicamente.


          if(objRegExp.test(object3)){

  return true;
  }

else{
         
return false;
  }
 
}




Lo extraño es que la uso con este texto:

Atención al cliente, realización de asientos contables, codificación de gastos, registro de cuentas por cobrar y pagar, manejo de la central, presentación de las declaraciones tributarias.


Y me dice que es correcta, de hecho para muchos otros textos si me sirve, no comprendo que estará pasando.


Uds saben que estoy haciendo mal? les explico un poco que el texto lo convierto en mayusculas y le quito los saltos de linea para mejor la evaluaciòn.


Lo que quiero hacer en el texto es que la persona escriba de todo, excepto las expresiones de una statement de un sql, pero que pueda escribir mayusculas, letras, numeros, minusculas sin signos ni nada, me funciona con todo pero con este texto de arriba no, la verdad no se que estaré haciendo mal.


Nunca me contestan -_-

Shell Root

No entendi nada xD

Dices: Y me dice que es correcta...  entonces que quieres?  :silbar:

CitarAtención al cliente, realización de asientos contables, codificación de gastos, registro de cuentas por cobrar y pagar, manejo de la central, presentación de las declaraciones tributarias.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Yaldabaot

Perdona amigo, pero esperaba una respuesta que me ayudara mejor, quizás me haya expresado mal y no me hayan entendido, el texto de ahí según el test que hecho en otras páginas si cumple con el patrón de la expresión regular pero... en el javascript por alguna razón me tira un false.

Saben ¿ porque será?

Gracias.
Nunca me contestan -_-

Shell Root

Código (javascript) [Seleccionar]
function RegExp(oTexto){
  var objRegExp = /^(?!.*WHERE.*|.*FROM.*|.*SELECT.*|.*UPDATE.*|.*DROP.*|.*INSERT.*|.*DELETE.*|.*ALTER.*|.*TABLE.*|.*TRUNCATE.*|.*DATABASE.*)[A-Za-zÑñÁÉÍÓÚáéíóú,'-.1234567890\s]+$/;
  return objRegExp.test(oTexto);
}


Prueba
Código (javascript) [Seleccionar]
document.write(RegExp("Atención al cliente, realización de asientos contables, codificación de gastos, registro de cuentas por cobrar y pagar, manejo de la central, presentación de las declaraciones tributarias.") + "<br/>");
document.write(RegExp("Atención al cliente, SELECT realización de asientos contables, codificación de gastos, registro de cuentas por cobrar y pagar, manejo de la central, presentación de las declaraciones tributarias.") + "<br/>");


Resultado
true
false


:huh:
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Yaldabaot

Gracias amigo, voy a probarlo y te aviso-
Nunca me contestan -_-