Tengo una duda pero no encuentro la respuesta a mi problema. ¡Espero que puedas ayudarme!
Aquí está mi HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" id="one"> <input type="text" id="two">Aquí está mi Javascript:
$('#one').on('input', function(){ var value = $(this).val(); if (value.includes("@") && value.includes(".com")) { $('#two').focus(); } }); Qué hace este guión
Estoy creando un formulario de inicio de sesión donde la entrada se enfoca en la segunda entrada cuando un usuario ha escrito su correo electrónico. En mi código: se enfoca en la siguiente entrada cuando la primera entrada detecta un símbolo '@' y el texto '.com'.
Pero aquí está el problema
Digamos que su correo electrónico es: 'john.computer@gmail.com'. Mi secuencia de comandos se centra en la segunda entrada después de escribir el símbolo '@', porque la entrada ya contiene '.com' y '@'.
Mi pregunta
¿Qué javascript necesito agregar para verificar si se escribe '.com' después del símbolo '@'?
Podrías usar expresiones regulares: @.*\.com
if (/@.*\.com/.test(value))Puedes usar indexOf() ( docs )
if (value.includes("@") && value.includes(".com") && value.indexOf("@") < value.indexOf(".com")) Acabo de encontrar ambas ubicaciones y compararlas. @ debe encontrarse en un índice anterior a .com . Sin embargo, aquí radica otro problema en su código. No todos los correos electrónicos terminan en .com . Aquí hay alguna solución para resolver el problema o simplemente puede usar esta
if (value.includes("@") && value.includes(".") && value.indexOf("@") < value.indexOf("."))Parece que desea actualizar el enfoque una vez que el usuario haya ingresado una dirección de correo electrónico válida. Para obtener sugerencias al respecto, consulte las respuestas a esta pregunta clásica: ¿Cuál es la mejor manera de validar una dirección de correo electrónico en JavaScript?
Para responder a su pregunta de manera más directa, puede crear una expresión regular (RegExp) para verificar si se escribe .com después del símbolo @ .
const comAfterAtSymbol = new RegExp('@.*\.com') if (comAfterAtSymbol.test(value)) { ... }