Javascript 这个电话号码验证是如何工作的?
所以我最近在自学jQuery,我刚刚来到AJAX的一章。有一个示例显示了如何检查电话号码的验证,但我不知道发生了什么以及它是如何工作的。以下是代码片段: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
// 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开头,以结尾。在本例中为数字。*表示零次或多次发生