jQuery 使用 RegEx 验证电话号码

     2023-05-09     147

关键词:

【中文标题】jQuery 使用 RegEx 验证电话号码【英文标题】:jQuery validate phone number with with RegEx 【发布时间】:2011-08-07 05:26:31 【问题描述】:

我有一个简单的 ajax 表单,我正在尝试验证它

    有值 该值是一个 10 位数字

我正在尝试使用 RegEx 来执行此操作。这是我到目前为止所拥有的。

var reg = new RegExp("/[0-9]10/");
$("#call_form").bind("submit", function() 
       if ($("#call_number").val().length < 1 && reg.test($("#call_number").val())) 
               $("#call_error").show();
                return false;
        
);

我知道问题与正则表达式有关,就好像我删除了验证框是否具有值的这部分代码一样。

编辑:这是我使用的最终正则表达式

var regEx = new RegExp("/[0-9]/");

$("#call_form").bind("submit", function() 

    if ($("#call_number").val().length != 10 && !$("#call_number").val().match(regEx)) 
        $("#call_error").show();
        $.fancybox.resize();
        return false;
    
);

编辑 2 使用这里的建议是我正在使用的,它允许空格和破折号,然后在检查时被剥离

    $("#call_form").bind("submit", function() 
var Phone = $("#call_number").val().replace(/\D+/g,'');

if (Phone.length != 10) 
        $("#call_error").show();
        $.fancybox.resize();
        return false;

    
);

【问题讨论】:

那个正则表达式只会检查字符串中是否至少有一个数字。您应该保留10 以确保它是所有数字。 @tjameson 好的,如果我保留10,我应该可以放弃length != 10 对吧?还是最好不要? 是的,但你应该两者都有。如果正则表达式匹配字符串的任何部分,reg.test 将返回 true。 或者您可以使用 ^ 和 $ 锚定您的正则表达式:/^[0-9]10$/ 我认为是语法。 我还想指出,您似乎忽略了人们喜欢将(555)555-5555 等放入电话号码字段的事实,我个人在输入我的时一直使用555.555.5555当一些写得不好的正则表达式拒绝我时,我会讨厌它...删除所有非数字,然后检查 .length &gt;= 10 以确保至少 10 个数字... 【参考方案1】:

这是我使用的 - 它很简单,如果有人正在搜索相同的内容,只需发布​​。

var a = PHONE_FROM_FIELD;
var filter = /^[0-9-+]+$/;
if (filter.test(a)) 
     return true;

else 
     return false;

干杯!

【讨论】:

【参考方案2】:

您的正则表达式对我来说很好...您可以将其缩短为 /[0-9]10/

你的问题在这里:

$("#call_number").val().length &lt; 1。如果数字是 10 个字符长,它永远不会小于 1,不是吗?

你的意思可能是这样的:

$("#call_number").val().length === 10

【讨论】:

没错,我选择了两个答案的组合。 应该是/^\d10$/——如果你想确保没有别的东西就需要锚点,否则11个数字会通过,12个字母、10个数字和一些符号也会通过 是的,\d 更简单。在问题的答案中,我给了他锚点。【参考方案3】:

没有人说您最初的努力出了什么问题 - 是斜线 (/)。当调用 RegExp 作为构造函数时,您不需要斜杠(这是表示正则表达式的标记),例如:

var re = /\w+/i;

相当于:

var re = new RegExp('\\w+','i');

请注意,您必须为特殊字符引用反斜杠。

最后一件事 - 在数字中允许空格。不过,您可以在测试或存储之前删除它们。用户发现读取 3 位或 4 位数字块中的数字要容易得多,例如

1234 871 098 比 1234871098 更容易阅读。

【讨论】:

不错的收获!我完全只是阅读它而没有标记它......;)【参考方案4】:

类似这样的:

var regEx = /^(\+\d)*\s*(\(\d3\)\s*)*\d3(-0,1|\s0,1)\d2(-0,1|\s0,1)\d2$/;
$("#call_form").bind("submit", function() 
       var val = $("#call_number").val();
       if (!val.match(regEx)) 
            $("#call_error").show();
            return false;
        
);

【讨论】:

这个正则表达式更完整,并且会解析它看起来像的破折号。但请注意,match 返回一个匹配数组。 我编辑了问题以包含解决方案。我使用简单的正则表达式只是意味着没有空格。【参考方案5】:
function validate_Phone_Number() 
    var number = $('field_Id').val();
    var filter = /^((\+[1-9]1,4[ \-]*)|(\([0-9]2,3\)[ \-]*)|([0-9]2,4)[ \-]*)*?[0-9]3,4?[ \-]*[0-9]3,4?$/;
    if (filter.test(number)) 
        return true;
    
    else 
        return false;
    

【讨论】:

【参考方案6】:

使用 jquery 对 keypress 和 keyup 使用相同的验证,为我工作

jquery 代码

    const goodColor = "#0C6";
    const badColor = "#FF0000";

    const $mobile_validation = $('#mobile_validation');
    
$('#mobile').on('keyup keypress', function(e) 
            if (e.which == 46 || e.which == 45 || e.which < 48 || e.which > 57) 
                    event.preventDefault();
                
    
                if(this.value.length !=10 )
                    $mobile_validation.text("Please enter 10 digit mobile number ");
                    $mobile_validation.css("color", badColor);
                
    
                if(this.value.length ===10 )
                    $mobile_validation.text("Good!");
                    $mobile_validation.css("color", goodColor);
                
            );

html代码

<input type="text" id="mobile" class="form-control" name="telephone" maxlength="10">
<span id="mobile_validation"></span>

【讨论】:

【参考方案7】:
// check phone number validation
        function validatePhoneNumber(number)
        
            count=number.length;
            if(number[0]!=" " && number[0]!="-" && number[count-1]!=" " && number[count-1]!="-")
            
                temp=number.replace(" ", "");
                temp=temp.replace("-", "");
                if($.isNumeric(temp))
                
                    if(temp.length>=7 && temp.length<=12)
                    
                        flag=1;
                        for(i=1;i<count;i++)
                                   
                            if(number[i]=="-" || number[i]==" ")
                            
                                if(number[i-1]=="-" || number[i-1]==" " || number[i+1]=="-" || number[i+1]==" ")
                                
                                    flag=0;
                                
                                           
                        

                        if(flag==1)
                        
                            valid=1;
                        
                        else
                        
                            valid=0;
                        
                    
                    else
                    
                        valid=0;
                    
                
                else
                

                    valid=0;
                

            
            else
            
                valid=0;
            
            return valid;
        

【讨论】:

phpphp(regex)电话号码验证(代码片段)

查看详情

Flutter - 使用正则表达式验证电话号码

】Flutter-使用正则表达式验证电话号码【英文标题】:Flutter-ValidateaphonenumberusingRegex【发布时间】:2019-08-2808:26:21【问题描述】:在我的Flutter移动应用中,我尝试使用regex验证电话号码。以下是条件。电话号码必须包含10位数字。... 查看详情

python regex 删除所有非数字字符并确保有效的电话号码

】pythonregex删除所有非数字字符并确保有效的电话号码【英文标题】:pythonregexremoveallnon-numbericcharactersandensurevalidphonenumber【发布时间】:2015-10-0319:09:55【问题描述】:我想将我所有的电话号码验证移到一个django验证器字段中。如... 查看详情

正则介绍,创建匹配regex对象

1前面的电话号码查找程序能工作,但是使用了很多代码,做的事情却有限;isPhoneNumber()函数有17行,但只能查找一种电话号码模式。像415.555.4242或者(415)555-4242这样的电话号码格式,该怎么查?如果电话号码有分机,例如415-555... 查看详情

身份证号码的正则表达式及验证详解(javascript,regex)

简言在做用户实名验证时,常会用到身份证号码的正则表达式及校验方案。本文列举了两种验证方案,大家可以根据自己的项目实际情况,选择适合的方案。身份证号码说明居民身份证号码,正确、正式的称谓应该是“公民身份... 查看详情

身份证号码的正则表达式及验证详解(javascript,regex)

在做用户实名验证时,常会用到身份证号码的正则表达式及校验方案。本文列举了两种验证方案,大家可以根据自己的项目实际情况,选择适合的方案。身份证号码说明居民身份证号码,正确、正式的称谓应该是“公民身份号码... 查看详情

使用远程方法对 emailId 和电话号码进行 Jquery 验证

】使用远程方法对emailId和电话号码进行Jquery验证【英文标题】:JqueryvalidationforemailIdandphonenumberusingremotemethod【发布时间】:2016-01-1720:20:35【问题描述】:我正在尝试使用jQuery验证插件(远程方法)验证输入的emailId和电话号码是... 查看详情

使用 jquery 验证验证国际电话输入

】使用jquery验证验证国际电话输入【英文标题】:ValidatingInternationalTelephoneInputusingjqueryvalidation【发布时间】:2016-12-2323:31:34【问题描述】:极客!我们都知道名为InternationalTelephoneInput的很棒的插件,有没有办法将它自己的验证... 查看详情

Oracle 11g - 使用 RegEx 检查约束

...我试图添加检查约束来验证一些信息(如电子邮件地址、电话号码等...)Oracle11g中有什么东西可以让我做这样的事情吗?constraintCK_CONSTRAINT_NAMEcheck(EM 查看详情

c#中使用正则表达式验证电话号码手机号身份证号

验证电话号码的主要代码如下:publicboolIsTelephone(stringstr_telephone){returnSystem.Text.RegularExpressions.Regex.IsMatch(str_telephone,@"^(d{3,4}-)?d{6,8}$");}验证手机号码的主要代码如下:publicboolIsHandset(stringstr_handset) 查看详情

tp5验证器使用(代码片段)

<?phpnamespaceappjunyivalidate;usethinkValidate;classUserextendsValidateprotected$rule=[//验证规则,require验证是否存在,//length验证长度//regex验证正则‘name‘=>‘require|length:11|regex:/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])d8$/‘,‘pass‘=>‘req... 查看详情

Swift 中的电子邮件和电话验证

...:2015-03-1521:51:34【问题描述】:我正在使用以下代码进行电话号码验证。但我收到以下错误。我无法继续进行。帮助我们继续前进。classPhoneNumberValidation:ValidationletPHONE_REGEX="^\\\\d3-\\\\d3-\\\\d4$"funcvalidate 查看详情

电话号码验证

/***验证电话号码**@param待验证的字符串*@return如果是符合格式的字符串,返回<b>true</b>,否则为<b>false</b>*/publicstaticbooleanIsTelephone(Stringstr){Stringregex="^(\d{3,4}-)?\d{6,8}$";returnmatch(regex,str 查看详情

用于单独输入字符的 jQuery 插件(例如用于电话令牌验证)

...输入字符后它会跳转到下一个字符字段。这种输入通常与电话号码验证令牌一起使用。我希望你知道我的 查看详情

jQuery 验证插件问题不适用于数字字段

...件字段没有问题(输入时显示两个错误的电子邮件),但电话号码字段未得到验证。它显示消息“请输入手机号码”但不显示“请输入有效的手机号码”。<script 查看详情

自由验证电话

Averyliberalvalidationofphonenumber.Assuresthereareatleast10digitsintheresomewhere.protectedvoidValidPhone(objectsource,ServerValidateEventArgse) { MatchCollectionm=Regex.Matches(e.Value,"[0-9]"); e.IsValid=(m.Count>9); } 查看详情

jQuery 验证插件查询

】jQuery验证插件查询【英文标题】:jQueryValidationPluginquery【发布时间】:2013-07-1600:15:19【问题描述】:我一直在尝试向电话字段添加验证,以便它只接受10到14位数字(也欢迎使用其他更好的英国电话验证方法)。我正在使用jQuer... 查看详情

Jquery表单验证-电话号码

】Jquery表单验证-电话号码【英文标题】:Jqueryformvalidation-telephonenumber【发布时间】:2012-03-0423:56:52【问题描述】:我已经在表单上设置了jQuery验证,验证当前测试电话号码字段不为空并且是一个数字,但我希望它能够处理用户... 查看详情