javascript - javascript自动验证在php文件中不起作用
问题描述
$(document).ready(function() {
$("#email").blur(function() {
var email = $(this).val();
var valid = "/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/";
if (email = "" || email == null) {
$('#email-e').css("color", "red");
$('#email-e').html('❌ Please Enter your email');
} else {
if (!email.test(valid)) {
$('#email-e').css("color", "red");
$('#email-e').html('❌ Invalid email address');
} else {
$('#email-e').css("color", "green");
$('#email-e').html('Valid email address');
}
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="test" id="email"><span id="emai-e"></span>
解决方案
=
是赋值,而不是比较,===
是严格相等的,我们可以使用它- 它是 regexp.test(text) 而不是 text.test(regexp)
- 你不需要引用正则表达式
我把它改成了var email =
,const emailVal =
因为我们周围有很多电子邮件
$(function() {
const valid = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
$("#email").on("blur", function() {
const emailVal = $(this).val();
if (emailVal.trim() === "") { // field value is never null but can be empty
$('#email-e').css("color", "red");
$('#email-e').html('❌ Please Enter your email');
} else {
if (!valid.test(emailVal)) {
$('#email-e').css("color", "red");
$('#email-e').html('❌ Invalid email address');
} else {
$('#email-e').css("color", "green");
$('#email-e').html('Valid email address');
}
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="test" id="email"> <span id="email-e"></span>
更短
$(function() {
const valid = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
$("#email").on("blur", function() {
const emailVal = $(this).val();
const empty = emailVal.trim() === "" // field value is never null but can be empty
const isValid = !empty && valid.test(emailVal);
let emailMessage = 'Valid email address';
$('#email-e').css("color", isValid ? "green" : "red");
if (empty) emailMessage = '❌ Please Enter your email';
else if (!isValid) emailMessage = '❌ Invalid email address';
$('#email-e').html(emailMessage)
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="test" id="email"> <span id="email-e"></span>
推荐阅读
- excel - 我对 VBA 中的 counta 函数有疑问
- dart - VS Code dart 行格式,行到屏幕中心后的新行
- java - 如何从 InstanceClass 枚举映射到实际的 AWS 实例类型
- php - 如何优化在具有 50M 行的表中总共执行 4000 次的 MYSQL 选择语句
- python - 如何避免这个熊猫数据框的迭代
- compiler-errors - U-Boot:尝试包含 TPM 头文件时出现编译错误
- java - javafx - 在第一个控制器上按下按钮后将参数传递给第二个控制器
- firebase - 错误:参数类型“字符串?” 不能分配给参数类型“字符串”
- c# - 我想在 UWP 应用中打开浏览器(用于 oAuth2 授权)
- ruby-on-rails - ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):将 JSON 参数发布到 Rails 控制器时