Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
南非移动Javascript正则表达式_Javascript_Jquery_Regex - Fatal编程技术网

南非移动Javascript正则表达式

南非移动Javascript正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我正在用Javascript编写一个简单的手机号码验证程序,但无法使正则表达式正常工作 南非移动电话号码目前设置为: 开始0 [678](1位) [0-9](1位) [0-9](7位数字) 例如0821234567,但人们也可以输入0821234567(带空格或其他方式)。我想使用正则表达式来测试,因为我发现082123456d也会作为有效值返回,所以只需检查数字即可 以下是我的示例函数: <script type="text/javascript"> func

我正在用Javascript编写一个简单的手机号码验证程序,但无法使正则表达式正常工作

南非移动电话号码目前设置为:

  • 开始0
  • [678](1位)
  • [0-9](1位)
  • [0-9](7位数字)
例如0821234567,但人们也可以输入0821234567(带空格或其他方式)。我想使用正则表达式来测试,因为我发现082123456d也会作为有效值返回,所以只需检查数字即可

以下是我的示例函数:

<script type="text/javascript">

        function regex(number) {
            var regex = /0[678]\d[0-9]\d[0-9]{7,}\d/g;
            if (regex.test(number) === true) {
                console.log("work");
            } else {
                console.log("no");
            }
        }
    </script>

函数正则表达式(数字){
var regex=/0[678]\d[0-9]\d[0-9]{7,}\d/g;
if(正则表达式测试(数字)==true){
控制台日志(“工作”);
}否则{
控制台日志(“否”);
}
}

在我看来,验证电话号码最简单的方法就是执行
。替换(/\D/g')
删除任何非数字的内容,然后查看其余内容是否有效。另外,请确保在开始和结束时分别使用
^
$
,以停止
082123456d
事件。@NiettheDarkAbsol您应该把它作为一个答案。这实际上是最好的解决方案。前0-9有什么特别之处,应该与后7位数字分开计算?你不能只做
[0-9](8位)
var number = '0821234568'; //082123456d or 082 123 4567

var trimmed = number.replace(/\s/g, '');

var regex = /^0(6|7|8){1}[0-9]{1}[0-9]{7}$/;

if (regex.test(trimmed) === true) {
    console.log("work");
else
    console.log("no");