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循环,因为这是唯一的单个字段,我更新我的答案。