javascript .match函数

时间:2018-04-20 10:32:55

标签: javascript html forms

我有以下javascript .match脚本,允许表单提交中的电话号码

var number = jQuery('#phone-number').val();

if ((number.match(/(\d)\1\1\1\1\1/))
          || (number.match(/(\d)(\d)\1\2\1\2\1\2/))
          || (number.match(/123456|234567|345678|456789|567890|987654|876543|765432|654321|543210/))
          || (!number.match(/^(0\d{8,10})?$/))) {
        alert("Please supply a valid phone number");
        return false;
}

目前,它不允许数字之间的空格..我对正则表达式不擅长,并且想知道是否有人可以告诉我如何使用上面的脚本在任何数字之间允许空格?

感谢 克雷格。

3 个答案:

答案 0 :(得分:1)

如果要在每个字符之间指定任意数量的空格,可以使用\s*

\s代表空格字符,*代表任意数量的

E.g。

\s*(\d)\s*\1\s*\1\s*\1\s*\1\s*\1\s*



const regex = /\s*(\d)\s*\1\s*\1\s*\1\s*\1\s*\1\s*/;

const tel1 = '111111';
const tel2 = ' 1 1 1 1   1 1';
console.log(regex.test(tel1));
console.log(regex.test(tel2));




答案 1 :(得分:0)

您可以使用

删除字符串中的所有空格
str = str.replace(/\s/g, '');

然后您可以使用现有代码。

答案 2 :(得分:0)

丑陋,但是:

 if ((number.match(/(\d)\s*\1\s*\1\s*\1\s*\1\s*\1\s*/))
              || (number.match(/(\d)\s*(\d)\s*\1\s*\2\s*\1\s*\2\s*\1\s*\2\s*/))
              || (number.match(/123456|234567|345678|456789|567890|987654|876543|765432|654321|543210/))
              || (!number.match(/^(0(?:\s*\d\s*){8,10})?$/))) {
            alert("Please supply a valid phone number");
            return false;
    }

对于1个空格,仅将\ s *替换为\ s?