Javascript 在同一html5文本框上使用按钮验证电子邮件和手机号码
我想使用单个文本框验证电子邮件和手机号码 我尝试了很多方法,但都没有成功。我想验证它是javascript、html5、jquery还是angularjs都不是问题 请帮我解决这个问题。提前谢谢Javascript 在同一html5文本框上使用按钮验证电子邮件和手机号码,javascript,jquery,html,validation,Javascript,Jquery,Html,Validation,我想使用单个文本框验证电子邮件和手机号码 我尝试了很多方法,但都没有成功。我想验证它是javascript、html5、jquery还是angularjs都不是问题 请帮我解决这个问题。提前谢谢 您的电子邮件地址/手机号码 提交 以下是简单的javascript代码,它将验证电子邮件和电话号码 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery
您的电子邮件地址/手机号码
提交
以下是简单的javascript代码,它将验证电子邮件和电话号码
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
function ValidateEmail(mail)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
// if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.emailAddr.value))
if(mail.match(mailformat))
{ alert(mail);
return (true)
}
alert("You have entered an invalid email address!")
return (false)
}
function validate()
{
var data=document.getElementById("email").value;
checkNumberorEmail();
}
function phonenumber(inputtxt)
{
var phoneno = /^\d{10}$/;
if((inputtxt.match(phoneno)))
{
alert(inputtxt);
return true;
}
else
{
alert("enter 10 digit number");
return false;
}
}
function checkNumberorEmail()
{
var data=document.getElementById("email").value;
if (isNaN(data))
{
ValidateEmail(data) ;
}
else{
phonenumber(data)
}
}
</script>
</head>
<body>
<form >
<input type="text" name="email" id="email">
<input type="button" onclick="validate()">
</form>
</body>
</html>
函数ValidateEmail(邮件)
{
var mailformat=/^\w+([\.-]?\w+*@\w+([\.-]?\w+*(\.\w{2,3})+$/;
//如果(/^\w+([\.-]?\w+*@\w+([\.-]?\w+*(\.\w{2,3})+$/.test(myForm.emailAddr.value))
if(mail.match(mailformat))
{警报(邮件);
返回(真)
}
警报(“您输入的电子邮件地址无效!”)
返回(假)
}
函数验证()
{
var data=document.getElementById(“电子邮件”).value;
CheckNumberEmail();
}
功能电话号码(输入文本)
{
var phoneno=/^\d{10}$/;
if((inputText.match(phoneno)))
{
警报(输入文本);
返回true;
}
其他的
{
警报(“输入10位数字”);
返回false;
}
}
函数checkNumberRorEmail()
{
var data=document.getElementById(“电子邮件”).value;
if(isNaN(数据))
{
验证邮件(数据);
}
否则{
电话号码(数据)
}
}
方法本身并不好。但在angular js中有一个可能的简单函数 HTML
<form name="form" ng-app="app" ng-controller="Ctrl" >
<div class="control-group" ng-class="{invalidClass: 'error'}[submitted && form.email.$invalid]">
<label class="control-label" for="email">Your email address/Mobile number</label>
<div class="controls">
<input type="text" name="email" ng-model="email" required />
</div>
</div>
<button type="submit" class="btn btn-primary btn-large" ng-click="submitForm()">Submit</button></form>
您的电子邮件地址/手机号码
提交
控制器
$scope.submitForm = function(){
if(validateEmail($scope.email) || validateMobile($scope.email)){
// The nput is email or mobile
}
else{
//both are not valid
console.log("Invalid inputs");
$scope.invalidClass = true;
}
}
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
function validateMobile(email) {
var re = /^\d{10}$/;
return re.test(email);
}
$scope.submitForm=function(){
if(validateEmail($scope.email)| validateMobile($scope.email)){
//nput是电子邮件或手机
}
否则{
//两者都无效
console.log(“无效输入”);
$scope.invalidClass=true;
}
}
功能验证电子邮件(电子邮件){
变量re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\'+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.];
返回重新测试(电子邮件);
}
功能验证移动电话(电子邮件){
var re=/^\d{10}$/;
返回重新测试(电子邮件);
}
首先将字符串拆分为邮件和数字,然后使用regexe(在internet中搜索)和test(返回布尔值)或match(返回匹配值)。电子邮件的regExe是非常核心的。你可以自己写,但我不会。添加了小提琴代码和固定的语法和格式查看一下我的fiddle@chaitanya为什么在4个月后改变接受率??
$scope.submitForm = function(){
if(validateEmail($scope.email) || validateMobile($scope.email)){
// The nput is email or mobile
}
else{
//both are not valid
console.log("Invalid inputs");
$scope.invalidClass = true;
}
}
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
function validateMobile(email) {
var re = /^\d{10}$/;
return re.test(email);
}