我在角工作的登录表单上。用户可以登录电子邮件/电话。我需要在单个文本框中验证电子邮件/电话。
现场情景:
Facebook的实现在登录同一类型的功能。我们可以登录Facebook通过电子邮件/电话。但根据研究,Facebook通过执行服务器端验证而不是客户端验证来验证用户数据。
到目前为止已经试过:
function validate() {
var textBoxValue = document.getElementById('emailphone').value;
var emailPattern = /^[a-z][a-zA-Z0-9_]*(\.[a-zA-Z][a-zA-Z0-9_]*)[email protected][a-z][a-zA-Z-0-9]*\.[a-z]+(\.[a-z]+)?$/;
if(textBoxValue == '') {
alert('Please enter value');
return false;
} else if(isNaN(textBoxValue)) {
if(!(textBoxValue.match(emailPattern))) {
alert('Please enter valid email');
return false;
}
} else {
if(textBoxValue.length != 10) {
alert('Please enter valid phno');
return false;
}
}
}
<input type="text" name="emailphone" id="emailphone"/>
<input type="submit" value="Validate" onclick="validate()">
我能够用纯JavaScript来实现这一功能,但我想用ng-pattern
实现它的角或者是否有任何在Angular中解决问题。
我在SO上发现了这篇文章,但没有按照我的预期工作。
Validation for email or phone number for same text field in angularjs
https://codepen.io/rpdasilva/pen/DpbFf我最喜欢的手机指令。在你的情况下不完全适用,但它可能有助于看一看。 – StephanieQ
你在其他问题的答案中发现了“不是每个人的期望值”?因为这非常接近这个问题的完全重复。 –
@MikeMcCaughan验证不按我的预期工作。当我尝试键入字母表时,它向我显示错误的错误消息,该电话号码无效,因为我正在尝试输入电子邮件。 –