对于正则表达式,我是一个完整的新手。即使在阅读了关于他们的指南之后,我仍然很难制定自己的指南。我想让我的表格以+12345678910格式验证传真号码。我有一些代码,但它允许我提交混合数字和字母,以及提交带有空格的数据,而不会完全填写faxnum文本框。我非常感谢有关如何更加熟练使用正则表达式的表格和提示的任何帮助。
var fax = document.registration.faxnum;
faxval(fax);
function faxval(fax)
{
var numbers = /[\+? *[1-9]+]?[0-9 ]+/; //Bad regex
if (fax.value.match(numbers))
{
document.getElementById("faxmsg").innerHTML=("Everything is OK.");
faxmsg.style.color="green";
}
else
{
faxmsg.innerHTML=("Invalid fax number.");
faxmsg.style.color="red";
}
};
答案 0 :(得分:1)
要匹配+12345678910之类的数字,请尝试:\+1[2-9][0-9]{9}
我假设+1部分是国际号码,234是区号,567是交换号,8910是号码的其余部分。此模式也会匹配一个数字,例如+12125551212。
任何美国或加拿大电话号码的第一个数字必须是2到9.因此我们可以将其作为第一个字符([2-9]
)。然后剩下的数字将是9位数字,0到9([0-9]{9}
)。
如果你想允许 - 或者。你也可以使用:\+1(|\.|\-)[2-9][0-9]{2}(|\.|\-)[0-9]{3}(|\.|\-)[0-9]{4}
。 (|\.|\-)
部分表示“不允许使用字符或字符或字符。”