首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >英国的电话号码验证表达式和语法是什么?

英国的电话号码验证表达式和语法是什么?
EN

Stack Overflow用户
提问于 2012-08-21 23:16:15
回答 1查看 2.5K关注 0票数 0
代码语言:javascript
运行
复制
function validateForm()
{
    var x=document.forms["pageFeedbackSurvey"]["emailAddr"].value;
    var atpos=x.indexOf("@");
    var dotpos=x.lastIndexOf(".");
        if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
            {
            alert("Please enter a valid e-mail address");
            return false;
            }

    var x=document.forms["pageFeedbackSurvey"]["comments"].value;
        if (x==null || x=="")
            {
            alert("Please enter your feedback into the textbox before pressing 'Submit'");
            return false;
            }

    var phone = document.getElementById("phone").value;
    var pattern = /^([0-9]){7,15}$/;
        if (pattern.test(phone)) 
        {
        alert("Your phone number : "+phone);
        return true;
        } 
        alert("It is not valid phone number!");
        return false;
        }

然后,html

代码语言:javascript
运行
复制
<form action="demo_form.asp" onsubmit="return validateForm()" method="post" name="pageFeedbackSurvey" id="pageFeedbackSurvey">
                            <div class="pod pageFeedback">
                                <h2>Feedback</h2>
                                <div class="body">                                  
                                    <fieldset>
                                        <div class="surveyrow">
                                            <p id="q1Wording">Did you find the information you were looking for on this page?</p>
                                            <ul>
                                                <li> <!-- input uses class, name and value for jquery -->
                                                    <input name="showdiv2" id="survey1_1" value="Yes" type="radio" class="showsubmit"/><label for="survey1_1">Yes</label>         
                                                </li>
                                                <li>
                                                    <input name="showdiv" id="survey1_2" value="No" type="radio" class="showform"/><label for="survey1_2">Partially</label>
                                                </li>
                                                <li>
                                                    <input name="showdiv" id="survey1_3" value="No" type="radio" class="showform"/><label for="survey1_3">No</label>
                                                </li>
                                            </ul>
                                        </div>

                                        <div id="extraFields">
                                            <div class="commentRow">
                                            <div id="hiddentextarea"> <!-- hidden div -->
                                                <label for="comments">How can we improve this page?</label>
                                                <textarea name="limitedtextarea" onKeyDown="limitText(this.form.limitedtextarea,this.form.countdown,300);" 
                                                onKeyUp="limitText(this.form.limitedtextarea,this.form.countdown,300);" id="comments" rows="8" cols="19"></textarea>
                                                <p>Character limit: <input readonly="readonly" type="text" name="countdown" id="countdown" size="3" value="300"></input></p>
                                            </div>
                                            </div> <!-- end hidden div -->
                                            <div id="hiddenfields"> <!-- hidden div -->
                                            <div class="emailContainer">
                                                <div class="email" id="email">
                                                    <input type="text" name="emailAddr" id="emailAddr" size="22" value="Enter email address"/>
                                                </div>                                                  
                                            </div>
                                            <div class="phoneContainer">
                                                <div class="phone" id="phone">
                                                    <input type="text" name="phone" id="phone" type="phone" size="22" value="" />
                                                </div>                                                  
                                            </div>


                                            <div id="pageFeedbackSubmit" class="button primary right">
                                                <input class="arrow" onclick="validate();" value="Submit" type="submit" id="surveySubmit"/>
                                            </div><!-- button -->
                                            </div> <!-- end hidden div -->
                                            <div class="clearBoth"></div>
                                        </div>

                                    </fieldset>
                                    <div id="errormsg" class="errorMessage" style="display: none"></div>
                                    <div id="thankYou" style="display:none">                                        
                                        <h3>Thank you</h3>                                      
                                        <p>We appreciate you taking the time to help us.</p>                                                                    
                                    </div>

我一直在努力寻找解决方案,以验证电话输入的类型或提交。在选择单选按钮之前,我一直隐藏表单,在按下收音机后显示电子邮件、电话和文本区域,然后我让它验证输入的文本区域和语法的电子邮件区域,现在我需要验证电话作为英国号码,我设法让电话字段至少显示一个弹出警告,如果不正确,但是我无法让它接受当前设置中的任何数字。

有人能告诉我正确的方法,让手机与电子邮件和文本区域同时与validateForm功能被激活提交吗?

补充/编辑:2012年8月23日

嘿,伙计们,谢谢你的回复,但我还是不能让它正常工作,我已经更改了id,所以不再有2 phone id,我在插入javascript telnumber检查之前将showdiv2更改为showdiv,并将输入类型更改为tel。

我将braemoor.co.uk/software/ there s.shtml的脚本添加到我的标题中的一个javascript文件中,然后我试图将该javascript绑定到html中,该示例中没有html,因此我一直在猜测.

已经为电子邮件和文本区域设置的验证功能由

代码语言:javascript
运行
复制
<form action="demo_form.asp" onsubmit="return validateForm()"

这个工作很好,我想要的是电话功能也能在提交之前运行吗?我尝试将它添加到submit按钮中,如

代码语言:javascript
运行
复制
<input class="arrow" onclick="checkUKTelephone();" value="Submit" type="submit" id="surveySubmit"/>

但是它不会验证手机--它只是在其验证的电子邮件和文本区域忽略电话号码后转发到演示页面,显然我没有做正确的事情--我对javascript没有太多的经验,您可能已经注意到了:)

有人能告诉我我哪里出问题了吗?

EN

回答 1

Stack Overflow用户

发布于 2012-08-21 23:56:03

您的HTML中有一个问题:

代码语言:javascript
运行
复制
<div class="phoneContainer">
    <div class="phone" id="phone">
       <input type="text" name="phone" id="phone" type="phone" size="22" value="" />
    </div>                                                  
</div>

正如您所看到的,id "phone“有两次用于DIV和输入。

因此,当您试图获得电话号码,您想要验证它返回“未定义”,这就是您验证实际电话号码安装的内容。

代码语言:javascript
运行
复制
<div class="phoneContainer">
    <div class="phone" id="phoneDiv"> <!-- change the name here -->
       <input type="text" name="phone" id="phone" type="phone" size="22" value="" />
    </div>                                                  
</div>

在HTML文档中,两个元素可以具有相同的名称,但是id应该是uniq。

有关基于代码的完整示例,请检查:https://docs.google.com/open?id=0B31oh4Omo6z0YjFmNHc2bjJCMk0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12064387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档