@Flxtr Por ejemplo, en el string "Ayer me compre un perro y un gato. El gato se me ha puesto malo." detectar todas las palabras perro y gato que haya. He probado con /(perro|gato)\/g/ pero no da resultados
<p>Click the button to do a global search for "is" in a string.</p>
<button onclick="myFunction()">Try it</button>
<p id="test"></p>
<script> function myFunction() { var str = "Ayer me compre un perro y un gato. El gato se me ha puesto malo."; var patt1 = /(perro|gato)/g; var result = str.match(patt1); document.getElementById("test").innerHTML = result; } </script>
<script> function myFunction() { var str = "Ayer me compre un perro y un gato. El gato se me ha puesto malo."; var result = str.replace( new RegExp("\(perro|gato)","gm"),"foo") alert(result);
} </script>
Me sale: Ayer me compré un foo y un foo, El foo se me ha puesto malo
@Flxtr Está bien, pero tiene un par de cosas innecesarias: no hace falta usar el constructor de regex en este caso, la barra antes del paréntesis sobra, y no hace falta usar el grupo para crear un backreference
@Mariano Mira Mariano te explico el problema. Todo viene a raíz de esta respuesta que he dado a una pregunta. es.stackoverflow.com/a/41713/16108. La verdad que yo no me he fijado pero si que es verdad que cuando haces el replace sobre el body se modifica también el id y por tanto se rompe. Ahora bien, he creado una regex por separado para que no detecte ese id y parece funcionar: jsfiddle.net/zg8enbf0/1.
@Mariano Ahí hago que excluya el texto del id. Sin embargo, cuando lo pongo en el ejemplo completo se rompe: jsfiddle.net/kajjndyk/1. Sé que me estoy dejando algo pero no consigo ver el qué.
@Mariano Tienes razón, no lo había pensado. La verdad que no estoy muy acostumbrado a las regex y me he lanzado a intentarlo para intentar aprender con este ejemplo. Sin embargo, no he llegado a entender porque en uno de los ejemplos no hace el reemplazo y en el otro sí.
@Error404 el signo de admiración no niega un regex.. una posible respuesta sería buscar todos los tags HTML, haciendo que sólo se reemplace cuando estás fuera de un tag
@Mariano ¿Entonces por qué en este caso realiza la negación y no aplica el reemplazo? jsfiddle.net/zg8enbf0/2 pero si le quitas la negación si que lo reemplaza?
@Mariano Es eso lo que me tiene totalmente confundido
@Error404 para casos sencillos, negando el resultado de la función, para casos como el de recién,no existe una estructura que niegue... Lo más cercano es un negative lookahead como usé en el ejemplo de arriba regular-expressions.mobi/lookaround.html y hay otras alternativas... Hay una pregunta en el sitio que está muy bien... Ya la busco
@Mariano Ahora mismo la miro. Gracias. ¿Y que piensas sobre la respuesta? ¿Debería de borrarla? ¿O debería de indicar que solamente se podría usar tomando el texto de un elemento y no del elemento body?
@Mariano No quiero dar soluciones erróneas. Sin embargo, mi solución si la aplicas a una etiqueta de tipo texto funciona bien, que es lo que pide realmente el OP. Por eso estoy en duda.
@Mariano Creo que igual debería de añadir que solo funciona para textos.
@rn3w volviendo a tu tema (aunque sigo con pocas ganas de interpretar ese código), te recomendaría trabajar con 1 sólo objeto en tu código, y llevarlo a JSON a la hora de guardarlos, y .parse inmediatamente después de recuperarlo
Ayer comentaba que la memoria me fallaba, cada vez lo tengo más claro
Por cierto
y no relacionado
el gobierno de los EEUU ha publicado un informe sobre el hackeo ruso
nada de algo excesivamente complicado ni tecnología punta
aprovecharon vulnerabilidades XSS y de inyección SQL, y una campaña de phishing, para robar cuentas e emails
ni superordenadores, ni programas de internet profundo, ni leches; cosas que cualquier programador podría haber hecho en media tarde
Personalmente, me da vergüenza que algo tan esencial y tan básico como sanear las entradas de usuario no se haga de forma correcta. Nos dan mal nombre a todos.
@AlvaroMontoro Yo intento poner medidas de seguridad en todo lo que puedo. Sin embargo, no tengo apenas experiencia y siempre pienso que algo se me está quedando atrás aunque intento informarme todo lo posible sobre las posibles vulnerabilidades.
Comprendo que una persona no puede saberlo todo, pero parece que en los tiempos que corren se está dando más importancia a la usabilidad y la accesibilidad que a la seguridad. Cuando la seguridad debería ser esencial
@AlvaroMontoro Por mi cuenta. Aunque realmente a nivel profesional puedo establecer los mismos métodos que a nivel personal. Me sorprende cada día más que a la gente le importe cada vez menos la seguridad y, como bien dices, sólo les importe la usabilidad.
@AlvaroMontoro Yo esa la aplico siempre, solo uso mysqli aunque no sé realmente porqué es más seguro uno que otro.
si usas las funciones mysqli_* pero con sentencias dinámicas (e.g. "SELECT * FROM tabla WHERE id = " . $_GET["id"]) tienen los mismos problemas de seguridad
no es estúpido. No te sientas así. Borra ese comentario