Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式不工作?_Javascript_Html_Regex - Fatal编程技术网

Javascript 正则表达式不工作?

Javascript 正则表达式不工作?,javascript,html,regex,Javascript,Html,Regex,让我们直接跳进去: JS 函数详细信息检查(){ var phNoLength=document.getElementById('phNo').value.length;//从表单中获取电话号码的值以进行检查 var cardnollength=document.getElementById('cardNo').value.length;//获取卡号长度的值以进行检查 var postCodeLength=document.getElementById(“postCode”).value.le

让我们直接跳进去:

JS

函数详细信息检查(){
var phNoLength=document.getElementById('phNo').value.length;//从表单中获取电话号码的值以进行检查
var cardnollength=document.getElementById('cardNo').value.length;//获取卡号长度的值以进行检查
var postCodeLength=document.getElementById(“postCode”).value.length//获取邮政编码长度的值
变量a=/^[-+]?[0-9]+$/;
变量b=/^[A-Za-z]+$/;
//如果表格未填写所有输入
对于(变量i=0;i<5;i++){
details=document.getElementById(“myForm”)[i].value;
如果(详细信息=“”){
var i=(“请输入您的所有详细信息。”);
document.getElementById(“formTital”).innerHTML=i;
返回;
}
}
//检查姓名中是否有数字
if(b.test(document.getElementById(“fName”).value)){
if(b.test(document.getElementById(“lName”).value)){
//如果名字太短
如果(fName<3){i=“请输入更长的名字。”.document.getElementById(“formTital”).innerHTML=i;return;}
如果(lName<3){i=“请输入更长的姓氏。”document.getElementById(“formTital”).innerHTML=i;return;}
//如果电话号码不是电话号码
if(a.test(document.getElementById(“phNo”).value)){
//如果电话号码太短
如果(phNoLength!=7){var i=“请使用7位数字的电话号码”;document.getElementById(“formTital”).innerHTML=i;return;}
//如果CC不是一个数字
if(a.test(document.getElementById(“cardNo”).value)){
//如果CC太短
如果(cardNoLength!=4){var i=“请使用4位数字的卡号”;document.getElementById(“formTital”).innerHTML=i;return;}
//如果邮政编码不是数字
if(a.test(document.getElementById(“postCode”).value)){
如果(postCodeLength!=4){var i=“请使用4位数字的卡号”;document.getElementById(“formTital”).innerHTML=i;return;}
}else{var i=“请仅在邮政编码中使用数字。”document.getElementById(“formTital”).innerHTML=i;return;}
}else{var i=“请仅使用信用卡中的数字。”document.getElementById(“formTital”).innerHTML=i;return;}
}else{var i=“请仅在电话号码中使用数字。”document.getElementById(“formTital”).innerHTML=i;return;}
}else{var i=“请不要在姓氏中使用数字。”document.getElementById(“formTital”).innerHTML=i;return;}
}else{var i=“请不要在您的名字中使用数字。”document.getElementById(“formTital”).innerHTML=i;return;}
切换内容();
}

名字:

姓氏:

电话号码:

信用卡号码:

地址:

邮政编码:

尝试以下代码:

var a = /^[-+]?[0-9]+\+$/;
var a=/^[-+]?[0-9]+\+$/;

console.log(“123456+”.match(a))
你的问题不清楚你到底想要什么。假设您希望将美国电话号码与a匹配,则以下将显示表示10位或7位美国电话号码的多种样式:

var phoneNumberRegExp = /^(?:\(?([2-9]\d{2})[)-]? ?)?([2-9]\d{2})-?(\d{4})$/;
这应符合:

2134567
213-4567
213-456-7890
(213)456-7890
(213) 456-7890
注意:
0
1
对于区号或前缀(7位电话号码的前3个号码)来说都是无效的第一位数字

首先是区号。第二个是前缀(exchange)。第三个是用户号码


然而,正则表达式确实不足以验证电话号码。你最好使用一个专门的库,比如。

这会改变/实现什么?奇怪的是,我不确定这会发生什么,但它不再是过去的-witch很好。+返回“请只在你的电话号码中使用数字。”这个巫婆很奇怪。e也可以输入一个数字,返回“请输入您的所有详细信息”,这意味着出于某种奇怪的原因,它不会将表格计算为“已填写”。有什么想法吗?@Draxy,他在
$
前面加了
\+
。这将强制最后一个字符为
+
,这可能不是您想要的。仅在0和9之间,而不是-+e之间,有人知道此代码吗?可能是我的正则表达式错误。这可能有效,也可能无效,但不应该是必需的。OP的原始逻辑有什么问题?字符串-234567与
a
的模式相匹配,那么为什么不执行它呢?你预计会发生什么?您看到的行为与您希望看到的行为不同?我们需要您清楚完整地说明您希望匹配或不匹配的字符组合(即数字)。请举例说明。解决方案的最佳选择是使用类似以下内容的谷歌搜索:。确保选择一个明确声明它使用JavaScript正则表达式(有多种类型)。然后使用你选择的站点尝试各种正则表达式来匹配你想要的。@Makyen我刚刚写了一篇评论就是这样做的。很抱歉以前没有这样做,我以为这不是我的RegExp!你可能想要像
/^(\(?\d{3}[)-])?\d{3}-?\d{4}$/
这样的东西,它应该匹配一些不同格式的美国电话号码。他的问题对我来说似乎很清楚。他想排除任何包含他角色集中任何字符的条目。顺便问一下,你从哪里知道这是关于电话号码的?“好像是关于邮政编码的。”我写了一封回信给torazaburo。OP在两个小时前对他的问题进行了大量修改。啊,很抱歉。@torazaburo,没问题。这是一种不寻常的情况。我不希望有人去搜索历史问题,看看是否发生了如此巨大的变化。谢谢你留个条子问我这件事。这是最好的办法。我当然想知道我的答案是否有那么远。