Este es simple: cree el script de navegador más corto para cambiar cada aspecto de fuerza en una página web a caballo. Este script debe poder pegarse en la consola y funcionar en la mayoría de los navegadores modernos.
Debe reemplazar todas las ocurrencias de la palabra fuerza y conjugados de la palabra fuerza (forzar, forzar, reforzar). Los casos también deben ser preservados.
No debe cambiar ninguna ocurrencia que no sea visible cuando la página se muestra en un navegador. Por ejemplo, metaetiquetas o comentarios.
Ejemplo
Se trata de una fOrcE log
. Hace que las personas que lo tocan sean muy contundentes. No intentes forzarlo.
Se trata de una hOrsE log
. Hace que las personas que lo tocan sean muy pesadas. No trates de adorarlo.
Desafortunadamente, este es un desafío solo de Javascript. El código más corto gana.
fuente
forc
intohors
- o es el reemplazo de todas las diferentes conjugaciones deforce
into sus versiones de caballo. En el primer caso, obtenemos cosas como "Reinhorsing", etc. En el segundo, soloforcing
sería una excepción. OP debe aclarar..innerHTML
las soluciones de reemplazo total, lo que supongo que es la razón por la que desea las excepciones en primer lugar.Respuestas:
175 bytes, ES5, XPATH
Esto prueba con éxito en los últimos Firefox y Chrome. La crítica es bienvenida! Este es mi primer swing de golf, y espero hacerlo bien.
El
document.evaluate()
método es compatible con todos los principales navegadores, excepto IE , que espero satisfaga el requisito de "la mayoría de los navegadores modernos". Y debido a que el selector XPath selecciona solo nodos de texto , esto debería dejar atributos, comentarios, espacios de nombres y otros datos que no están destinados a mostrarse intactos sin necesidad de verificar cada nodooffsetParent
.Versión sin golf:
O si lo reemplazo
function / return
con la notación de flecha gruesa ECMA6, puedo reducirlo a 163 caracteres.Sin embargo, esta sintaxis actualmente solo funciona en Firefox, creo. Hasta que más navegadores adopten esta sintaxis, la solución de 175 bytes anterior seguirá siendo mi entrada oficial para el juego.
fuente
offsetParent
filtrar todas las etiquetas condisplay:none
estilo (que no se muestran en el navegador).(?=e|ing)
a mi expresión regular si OP lo considera necesario. Al respectodisplay: none
, interpreté "Por ejemplo, metaetiquetas o comentarios". para significar cosas que no son nodos de texto deben dejarse solos, mientras que los nodos de texto, incluidos los nodos invisibles, deben cambiarse. Sin embargo, me interesaría ver que el OP confirmara sus intenciones.ECMAScript 5,
248233193191182 bytesProbado en Chrome y Firefox.
Versión sin golf
Solo debemos modificar TextNodes visibles; Las URL, los atributos, etc. no se muestran en el navegador. Podemos usar un TreeWalker para encontrarlos a todos. Los TextNodes visibles se identificarán verificando si su ParentNode tiene un offsetParent verdadero . 1
1 Esto tiene errores en IE 9.
fuente
n=[],c=0,
poblar y luego volver a recorrerlon
. Just doif(t.parentNode.offsetParent)t.data=t.data.replace
etc.200 bytes, ES6
Aquí hay una versión ES6. Ejecútelo en la última consola web de Firefox.
Agregaré la versión sin golf si así lo solicita :)Aquí está la versión sin golf
fuente
replace('forc','hors')
y eso es todo. Muestra cuánto javascript sé ...innerHTML
cambiará todas las ocurrencias dentro de los elementos visibles, por lo que si hay un comentario dentro, también se tocará. 2. Se podría argumentar que ES6 realmente no funciona en la mayoría de los navegadores modernos .