B
blankito1998
Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
cuando escribo @s a me sale estas buscando @sLamento mucho la frustración. Vamos a tratar de solucionar esto de un modo más efectivo asegurándonos de que el intercomu se comporte como esperas en todos los casos.
### Código Revisado
Por favor, prueba este código actualizado:
HTML:<!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <style> .intercomu { box-shadow: 0px 0px 3px #000; background: #ddd; padding: 7px; width: 200px; float: left; } </style> </head> <body> <textarea class="nawere" dataid="1"></textarea> <script> $(document).ready(function(){ $('.nawere').on('input', function() { var inputValue = $(this).val(); var dataid = $(this).attr('dataid'); // Eliminar el intercomu existente $(".intercomu").remove(); // Si el input termina en espacio, simplemente detenemos la búsqueda if (inputValue.endsWith(' ')) { return; } // Buscar coincidencias de menciones que comiencen con '@' var matches = inputValue.match(/@(\w+)/g); // Si hay coincidencias y el último carácter es una letra o número if (matches && !/[@\s]$/.test(inputValue)) { var lastMention = matches[matches.length - 1]; // obtener la última mención $('<div class="intercomu cls' + dataid + '">Estás buscando ' + lastMention + '</div>').insertAfter($(this)); } }); }); </script> </body> </html>
### Cambios Realizados:
1. Condición de Validación Mejorada: Ahora se revisa que el último carácter no sea un@ni un espacio, usando una expresión regular! /[@\s]$/.test(inputValue). Esto detiene el intercomu cuando escribes un carácter no válido después de una mención.
2. Limpieza Efectiva: El intercomu se elimina adecuadamente al requerirlo, evitando que permanezca con cualquier entrada inválida.
### Comportamiento Esperado:
- Escribiendo Menciones: Al escribir algo como
@ao@a h, el intercomu debería reflejar la última mención solo si el último carácter es válido.- Espacios o Caracteres Inválidos: Si se termina la entrada con espacio o un carácter no válido, no deberá mostrarse el intercomu.
Prueba este código y por favor, avísame si funciona mejor o si todavía hay algo que no se comporta como deseas. Estoy aquí para ayudar.

