Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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_Forms_Validation - Fatal编程技术网

Javascript 这个电话号码验证是如何工作的?

Javascript 这个电话号码验证是如何工作的?,javascript,jquery,regex,forms,validation,Javascript,Jquery,Regex,Forms,Validation,所以我最近在自学jQuery,我刚刚来到AJAX的一章。有一个示例显示了如何检查电话号码的验证,但我不知道发生了什么以及它是如何工作的。以下是代码片段: // Validate a phone number field $( "#form" ).submit(function( event ) { var inputtedPhoneNumber = $( "#phone" ).val(); // Match only numbers var phoneNumberReg

所以我最近在自学jQuery,我刚刚来到AJAX的一章。有一个示例显示了如何检查电话号码的验证,但我不知道发生了什么以及它是如何工作的。以下是代码片段:

// Validate a phone number field
$( "#form" ).submit(function( event ) {
    var inputtedPhoneNumber = $( "#phone" ).val();

    // Match only numbers
    var phoneNumberRegex = /^\d*$/;

    // If the phone number doesn't match the regex
    if ( !phoneNumberRegex.test( inputtedPhoneNumber ) ) {

        // Usually show some kind of error message here

        // Prevent the form from submitting
        event.preventDefault();
    } else {

        // Run $.ajax() here
    }
});
我不明白的是:

var phoneNumberRegex = /^\d*$/;

我做了一些电话号码验证的研究,结果都是这样的:它们之间有一对“/”和一些我以前从未见过的东西,任何人都可以解释这里发生了什么以及为什么它会起作用?任何帮助都将不胜感激,谢谢

/^\d*$/
仅匹配以(
^
)数字开头、包含任意数量的数字(
\d*
)并且以数字(
$
)结尾的字符串。在JavaScript中,可以通过在两个
//code>斜杠字符之间放置正则表达式模式来定义正则表达式

在您的示例中,正则表达式模式意味着:

  • ^
    -从字符串序列的最开始开始开始匹配
  • \d*
    -匹配零个或多个数字字符0-9
  • $
    -保持匹配,直到字符串序列的最后
简而言之,此模式要求整个字符串序列仅由数字字符组成,而不由其他字符组成

然后,生成的正则表达式对象可以调用字符串序列上的
test
函数来测试该序列是否符合模式,并且只有当字符串序列与正则表达式完全匹配时,它才会计算为true。

-这将让您了解regex语句的作用

var phoneNumberRegex = /^\d*$/;
上面的代码使用regex语句设置变量phoneNumberRegex。声明本身没有任何作用,但是

!phoneNumberRegex.test( inputtedPhoneNumber )
告诉它测试变量InputedPhoneNumber,看看它是否没有按照regex语句所建议的格式进行格式化
^\d
查看它是否以数字开头
*
表示它将接受以前的正则表达式属性的任何数字,在本例中是测试数字的
\d
$
表示当给出最后一个数字时,它应该停止匹配。如果在数字后加空格,则不匹配

因此:
^/d*$

说: 如果以数字开头,则收集第一个数字和数字字符串结尾之间的所有内容


如果输入的PhoneNumber中的字符串没有指定的格式,则该字符串将不匹配。

您可能需要使用:它只是检查是否都是数字。没有别的了。这就是“d”的简写形式。\d类似于[0-9],并且^means以$means开头,以结尾。在本例中为数字。*表示零次或多次发生