Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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
I';我正试图用javascript验证一个电话号码_Javascript_Forms_Validation - Fatal编程技术网

I';我正试图用javascript验证一个电话号码

I';我正试图用javascript验证一个电话号码,javascript,forms,validation,Javascript,Forms,Validation,我正在验证一个电话号码。但这似乎不起作用。为什么这样不行 <html> <head> <script> function validateForm() { var phone1 = document.forms["myForm"]["phone"].value; var phone2 = ^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$; if ( phone1

我正在验证一个电话号码。但这似乎不起作用。为什么这样不行

<html>
<head>
<script>
    function validateForm() {
        var phone1 = document.forms["myForm"]["phone"].value;
        var phone2 = ^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$;

        if ( phone1.value.match(phone2) ){
            return true;
        }else{
            alert("Please enter a valid phone number");
            return false;
        }   
    }
</script>
</head>
<body>

<form name="myForm"
onsubmit="return validateForm()" method="post">

    <label for="phone">Phone:</label><input name="phone" id="phone" value=""    placeholder="Zip..." type="text" onsubmit="return validateForm()"/>

<button type="submit">Submit</button>

</form>

</body>
</html>

函数validateForm(){
var phone1=document.forms[“myForm”][“phone”].value;
var phone2=^(\+0?1\s)\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$;
if(phone1.value.match(phone2)){
返回true;
}否则{
警报(“请输入有效的电话号码”);
返回false;
}   
}
电话:
提交
它肯定与if语句中的值比较有关,我只是不知道如何准确地进行比较

var phone2 = ^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$;
这是JavaScript中正则表达式的错误语法,应该是这样的

var phone2 = /^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$/;
此外,您将获得两次字段值:

var phone1 = document.forms["myForm"]["phone"].value;
//                                             ^
...
if (phone1.value.match(phone2)) {
//         ^ `value` property here is not defined
请参阅固定代码

这是JavaScript中正则表达式的错误语法,应该是这样的

var phone2 = /^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$/;
此外,您将获得两次字段值:

var phone1 = document.forms["myForm"]["phone"].value;
//                                             ^
...
if (phone1.value.match(phone2)) {
//         ^ `value` property here is not defined
请参阅固定代码

这是JavaScript中正则表达式的错误语法,应该是这样的

var phone2 = /^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$/;
此外,您将获得两次字段值:

var phone1 = document.forms["myForm"]["phone"].value;
//                                             ^
...
if (phone1.value.match(phone2)) {
//         ^ `value` property here is not defined
请参阅固定代码

这是JavaScript中正则表达式的错误语法,应该是这样的

var phone2 = /^(\+0?1\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$/;
此外,您将获得两次字段值:

var phone1 = document.forms["myForm"]["phone"].value;
//                                             ^
...
if (phone1.value.match(phone2)) {
//         ^ `value` property here is not defined
请参见固定代码。

您的模式,基于您的模式验证电话号码,请遵循您应该验证的方式

查看

JS

HTML

根据您的模式验证电话号码,您应该按照以下方式验证您的模式

查看

JS

HTML

根据您的模式验证电话号码,您应该按照以下方式验证您的模式

查看

JS

HTML

根据您的模式验证电话号码,您应该按照以下方式验证您的模式

查看

JS

HTML


用户倾向于以自己喜欢的方式在文本框中输入详细信息。如果表单阻止他们以特定方式在文本框中输入详细信息,那将是一种恼人的体验。最好将正则表达式推广到此类模式。 @sainaen已经指出了错误,但是您的正则表达式在以下情况下仍然可能失败

  +1-234-123-1234
  +1234-123-1234
  +1234123-1234
  +12341231234
  2341231234 
  434-123-1234   //with a space in the end or beginning 

用户倾向于以自己喜欢的方式在文本框中输入详细信息。如果表单阻止他们以特定方式在文本框中输入详细信息,那将是一种恼人的体验。最好将正则表达式推广到此类模式。 @sainaen已经指出了错误,但是您的正则表达式在以下情况下仍然可能失败

  +1-234-123-1234
  +1234-123-1234
  +1234123-1234
  +12341231234
  2341231234 
  434-123-1234   //with a space in the end or beginning 

用户倾向于以自己喜欢的方式在文本框中输入详细信息。如果表单阻止他们以特定方式在文本框中输入详细信息,那将是一种恼人的体验。最好将正则表达式推广到此类模式。 @sainaen已经指出了错误,但是您的正则表达式在以下情况下仍然可能失败

  +1-234-123-1234
  +1234-123-1234
  +1234123-1234
  +12341231234
  2341231234 
  434-123-1234   //with a space in the end or beginning 

用户倾向于以自己喜欢的方式在文本框中输入详细信息。如果表单阻止他们以特定方式在文本框中输入详细信息,那将是一种恼人的体验。最好将正则表达式推广到此类模式。 @sainaen已经指出了错误,但是您的正则表达式在以下情况下仍然可能失败

  +1-234-123-1234
  +1234-123-1234
  +1234123-1234
  +12341231234
  2341231234 
  434-123-1234   //with a space in the end or beginning 

可能重复在这里试一试:可能重复在这里试一试:可能重复在这里试一试:可能重复在这里试一试:我只是好奇,为什么在这里使用
exec()
?它的性能是否比
test()
match()
更高?此外,这个正则表达式要么匹配完整字符串要么不匹配(因为
^$
),为什么要使用
g
标志和
while
循环?Hello@sainaen yeah correct不需要使用while循环,因为这是唯一的一个字段,我更新了我的答案。我只是好奇,为什么要在这里使用
exec()
?它的性能是否比
test()
match()
更高?此外,这个正则表达式要么匹配完整字符串要么不匹配(因为
^$
),为什么要使用
g
标志和
while
循环?Hello@sainaen yeah correct不需要使用while循环,因为这是唯一的一个字段,我更新了我的答案。我只是好奇,为什么要在这里使用
exec()
?它的性能是否比
test()
match()
更高?此外,这个正则表达式要么匹配完整字符串要么不匹配(因为
^$
),为什么要使用
g
标志和
while
循环?Hello@sainaen yeah correct不需要使用while循环,因为这是唯一的一个字段,我更新了我的答案。我只是好奇,为什么要在这里使用
exec()
?它的性能是否比
test()
match()
更高?此外,此正则表达式将匹配完整字符串或不匹配完整字符串(因为
^$
),为什么要使用
g
标志和
while
循环?Hello@sainaen yeah correct无需使用while循环,因为这是唯一的单个字段,我更新我的答案。