Validate phone number with JavaScript

前端 未结 26 1616

I found this code in some website, and it works perfectly. It validates that the phone number is in one of these formats:
(123) 456-7890 or 123-

相关标签:
26条回答
  • 2020-11-22 05:26

    try this

    /^[\+]?\d{2,}?[(]?\d{2,}[)]?[-\s\.]?\d{2,}?[-\s\.]?\d{2,}[-\s\.]?\d{0,9}$/im
    

    valid formats:

    1. (123) 456-7890
    2. (123)456-7890
    3. 123-456-7890
    4. 123.456.7890
    5. 1234567890
    6. +31636363634
    7. +3(123) 123-12-12
    8. +3(123)123-12-12
    9. +3(123)1231212
    10. +3(123) 12312123
    11. 075-63546725
    0 讨论(0)
  • 2020-11-22 05:29

    try this

    /^(\+{0,})(\d{0,})([(]{1}\d{1,3}[)]{0,}){0,}(\s?\d+|\+\d{2,3}\s{1}\d+|\d+){1}[\s|-]?\d+([\s|-]?\d+){1,2}(\s){0,}$/gm

    valid formats

    • (123) 456-7890
    • (123)456-7890
    • 123-456-7890
    • 1234567890
    • +31636363634
    • +3(123) 123-12-12
    • +3(123)123-12-12
    • +3(123)1231212
    • +3(123) 12312123
    • +3(123) 123 12 12
    • 075-63546725
    • +7910 120 54 54
    • 910 120 54 54
    • 8 999 999 99 99

    https://regex101.com/r/QXAhGV/1

    0 讨论(0)
  • 2020-11-22 05:30

    This will work:

    /^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/
    

    The ? character signifies that the preceding group should be matched zero or one times. The group (-|\s) will match either a - or a | character. Adding ? after the second occurrence of this group in your regex allows you to match a sequence of 10 consecutive digits.

    0 讨论(0)
  • 2020-11-22 05:31

    This reg ex is suitable for international phone numbers and multiple formats of mobile cell numbers.

    Here is the regular expression: /^(+{1}\d{2,3}\s?[(]{1}\d{1,3}[)]{1}\s?\d+|+\d{2,3}\s{1}\d+|\d+){1}[\s|-]?\d+([\s|-]?\d+){1,2}$/

    Here is the JavaScript function

    function isValidPhone(phoneNumber) {
        var found = phoneNumber.search(/^(\+{1}\d{2,3}\s?[(]{1}\d{1,3}[)]{1}\s?\d+|\+\d{2,3}\s{1}\d+|\d+){1}[\s|-]?\d+([\s|-]?\d+){1,2}$/);
        if(found > -1) {
            return true;
        }
        else {
            return false;
        }
    }
    

    This validates the following formats:

    +44 07988-825 465 (with any combination of hyphens in place of space except that only a space must follow the +44)

    +44 (0) 7988-825 465 (with any combination of hyphens in place of spaces except that no hyphen can exist directly before or after the (0) and the space before or after the (0) need not exist)

    123 456-789 0123 (with any combination of hyphens in place of the spaces)

    123-123 123 (with any combination of hyphens in place of the spaces)

    123 123456 (Space can be replaced with a hyphen)

    1234567890

    No double spaces or double hyphens can exist for all formats.

    0 讨论(0)
  • 2020-11-22 05:32

    My regex of choice is:

    /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im
    

    Valid formats:

    (123) 456-7890
    (123)456-7890
    123-456-7890
    123.456.7890
    1234567890
    +31636363634
    075-63546725

    0 讨论(0)
  • 2020-11-22 05:34

    If you using on input tag than this code will help you. I write this code by myself and I think this is very good way to use in input. but you can change it using your format. It will help user to correct their format on input tag.

    $("#phone").on('input', function() {  //this is use for every time input change.
            var inputValue = getInputValue(); //get value from input and make it usefull number
            var length = inputValue.length; //get lenth of input
    
            if (inputValue < 1000)
            {
                inputValue = '1('+inputValue;
            }else if (inputValue < 1000000) 
            {
                inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, length);
            }else if (inputValue < 10000000000) 
            {
                inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, 6) + '-' + inputValue.substring(6, length);
            }else
            {
                inputValue = '1('+ inputValue.substring(0, 3) + ')' + inputValue.substring(3, 6) + '-' + inputValue.substring(6, 10);
            }       
            $("#phone").val(inputValue); //correct value entered to your input.
            inputValue = getInputValue();//get value again, becuase it changed, this one using for changing color of input border
           if ((inputValue > 2000000000) && (inputValue < 9999999999))
          {
              $("#phone").css("border","black solid 1px");//if it is valid phone number than border will be black.
          }else
          {
              $("#phone").css("border","red solid 1px");//if it is invalid phone number than border will be red.
          }
      });
    
        function getInputValue() {
             var inputValue = $("#phone").val().replace(/\D/g,'');  //remove all non numeric character
            if (inputValue.charAt(0) == 1) // if first character is 1 than remove it.
            {
                var inputValue = inputValue.substring(1, inputValue.length);
            }
            return inputValue;
    }
    
    0 讨论(0)
提交回复
热议问题