针对土耳其的JavaScript手机号码验证

时间:2017-11-17 14:31:34

标签: javascript regex validation

我想通过JavaScript RegEx检查手机号码输入,但我在构建正确的查询时遇到了困难。我想要的只是验证手机号码。我要求的格式是: 5(0/3/4)X XXX XXXX 包括空格。

例如; 532 123 4567将有效 532 1234567无效。也 458 123 4567无效。

澄清规则是:

  1. 第一个数字必须为5
  2. 第二个数字必须为0或3或4或5
  3. 根据以下规则跟随任何数字:

    • 如果前一个数字为0,则该数字必须为(5,6或7)
    • 如果前一个数字为3,则此数字可以是(0,1,2,3,4,5,6,7,8,9)
    • 如果前一个数字为4,则此数字可以是(0,1,2,3,4,5,6,7,8,9)
    • 如果前一个数字为5,则此数字可以是(0,1,2,3,4,5,6,7,8,9)
  4. 单一空间

  5. 任何3位数字
  6. 单一空间
  7. 任何4位数字
  8. 我使用的代码如下:

    function isPhone(phone) {
        var pattern = [PATTERN HERE];
        return pattern.test(phone);
    }
    

    我应该使用哪种模式进行验证?

    问候。

2 个答案:

答案 0 :(得分:0)

符合您确切规则的简单正则表达式是:

^5(0[5-7]|[3-5]\d) ?\d{3} ?\d{4}$

Test it on regex101 here

请注意,如果您要验证用户输入,则应允许任何可用的输入而无需格式化。在这种情况下,您应该使空格可选:

Delete from Students where group_id=(Select group_id from groups where name_group='ISI');

答案 1 :(得分:0)

您需要 the regex

/^5(0[5-7]|[3-5]\d)\s\d{3}\s\d{4}$/gm

这应该是你的功能:

function isPhone(phone) {
    var pattern = /^5(0[5-7]|[3-5]\d)\s\d{3}\s\d{4}$/gm;
    return pattern.test(phone);
}

<强>演示:

const regex = /^5(0[5-7]|[3-5]\d)\s\d{3}\s\d{4}$/gm;
const str = `532 123 4567
509 457 5879
551 123 1478
532 1234567
458 123 4567
`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }
    
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}