联系人字段的Javascript验证
Javascript validation for a contact field
我试图验证一个可以包含电子邮件地址或电话号码的字段。一个人会怎么做呢?我觉得我的代码很接近,但我有点卡在数字部分。
if (($(this).find('#contactPhoneEmail').val().indexOf('@') != -1) && ($(this).find('#contactPhoneEmail').val().indexOf('@') != -1)){
alert("You did not enter a valid contact type");
return false; // prevents submitting
}
在伪代码中,我尝试如下:
"如果字段不包含'@'和'Numbers',则给出警告"
我知道它不是完全可靠的,但它至少可以防止人们输入字母字符。我的表单使用相同的字段,允许人们选择电子邮件地址或电话号码。我还考虑过做如下操作
"如果它只包含数字,那么请确保它是正确的格式"然而,我意识到有各种各样的电话号码类型,似乎不可能确保。
你们觉得怎么样?
使用正则表达式:
function isEmail (s) {
var isEmail_re = /^'s*['w'-'+_]+('.['w'-'+_]+)*'@['w'-'+_]+'.['w'-'+_]+('.['w'-'+_]+)*'s*$/;
return String(s).search (isEmail_re) != -1;
}
function isPhoneNumber (s) {
var isPhoneNumber_re = /^(?:(?:'+?1's*(?:[.-]'s*)?)?(?:'('s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])'s*')|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))'s*(?:[.-]'s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})'s*(?:[.-]'s*)?([0-9]{4})(?:'s*(?:#|x'.?|ext'.?|extension)'s*('d+))?$/;
return String(s).search (isPhoneNumber_re) != -1;
}
你的validate函数应该是这样的:
function validate () {
var input = $(this).find('#contactPhoneEmail').val();
return isEmail(input) || isPhoneNumber(input);
}
我个人会这样做
function submit_form() {
if (validate()) {
// ajax send or submit form.
}
}
function validate() {
field = $('.some-div').val();
if (field.match("/emailRegex/i") || field.match("/phoneRegex/i")) {
return true;
} else {
return false;
}
}
互联网上有很多正则表达式,我想说找一些你满意的。
还有几种提交表单的方法。您可以将submit_form()
函数绑定到提交按钮,并使其发送带有数据的表单,或者使其取消表单提交,并在验证通过时发送表单。
编辑-略有误读问题
如果你的逻辑是检查一个字段,如果它有一个'@'在里面,你可以假设它是一个有效的电子邮件,或者如果它没有'@'在里面,那么它只能是数字(即0-9),然后像下面的东西应该实现你的目标。
function checkPhoneEmailValid()
{
var phoneEmailValue = $('#contactPhoneEmail').val();
var regExTester = /@|^[0-9]+$/; //This is a Regular Expression that checks for the occurance of a @
// or the whole string only contain numbers 0-9
return regExTester.test(phoneEmailValue); //This will return true or false;
}
虽然这些规则是非常基本的,而且还有更好的方法来测试电子邮件和/或电话号码。此外,您还需要确定电话号码允许使用哪些字符,如果包含国家代码或地区代码,则需要更改正则表达式。谷歌regex的电话号码/电子邮件,你会发现更全面的选项
相关文章:
- 验证Javascript中的Textarea
- 表单验证JavaScript编号总是返回false
- 验证javascript中的输入没有'不起作用
- 验证JavaScript中是否存在变量
- 验证javascript中的输入是否在2个数字之间
- 禁止的正则表达式._或.-(电子邮件验证/javascript)
- 表单验证Javascript没有响应
- 用于验证 JavaScript 中的字母数字值的正则表达式
- 如何使用正则表达式验证 JavaScript 中的自定义 URL
- 按 ID 验证 JavaScript 中的列表框和单选按钮
- 如何验证 JavaScript 和 html 代码
- 表单验证 - Javascript 删除空格电话号码
- 用于验证 JavaScript 中的条件的正则表达式
- 仅当浏览器无法验证表单时才使用表单验证 JavaScript
- 多个复选框验证 JavaScript
- 验证 Javascript 中的多个部分
- 使用 Jquery 验证 JavaScript 对象是否为空
- 警报框中的基本验证 Javascript
- 登录验证 JavaScript 无法正常工作
- 验证 JavaScript 正则表达式