JS正则表达式校验函数大全

0 下载量 110 浏览量 更新于2024-08-30 收藏 126KB PDF 举报
"这篇文档详细介绍了JavaScript中的正则表达式及其在验证各种输入格式时的应用,包括数字组成的字符串、登录用户名、用户姓名、密码、电话和传真号码、手机号码以及邮政编码的验证规则。" 在JavaScript中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配、查找、替换等操作。它由特定字符序列构成,可以用来验证字符串是否符合预定义的模式。以下是对给定代码中各个函数涉及的正则表达式知识点的详细解释: 1. **isDigit(s)**: 这个函数用于检查字符串`s`是否只包含1到20个数字。正则表达式`/^[0-9]{1,20}$/.`意味着字符串必须以一个到二十个数字开始(`^`表示开始)并结束(`$`表示结束),中间是零个或多个0到9的数字(`[0-9]`)。 2. **isRegisterUserName(s)**: 此函数验证登录用户名,要求长度为5-20个字符,以字母开头,可包含字母、数字、下划线或点号。正则表达式`/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/.`定义了以一个字母(`^[a-zA-Z]{1}`)开头,后跟4到19个字母、数字、下划线(`[._]`)的组合。 3. **isTrueName(s)**: 验证用户姓名,限制为1-30个字母。正则表达式`/^[a-zA-Z]{1,30}$/.`确保字符串以一个字母开始,后面跟着零到二十九个字母。 4. **isPasswd(s)**: 这个函数验证密码,要求包含6-20个字母、数字或下划线。正则表达式`/^(\w){6,20}$/.`中,`\w`代表任何字母、数字或下划线,所以`(\w){6,20}`意味着6到20个这样的字符。 5. **isTel(s)** 和 **isMobil(s)**: 这两个函数都用于验证电话和传真号码,允许以“+”开头,包含数字,可以有“-”分隔。它们的正则表达式几乎相同,但isMobil函数缺少对“+”的限制,可能是个错误。正则表达式`/^[+]{0,1}(\d){1,3}[]?([-]?((\d)|[]){1,12})+$/.`匹配一个可选的“+”,然后是一个到三个数字,接着是零个或多个空格或数字,中间可选地插入一个“-”。 6. **isPostalCode(s)**: 验证邮政编码,允许3-12个字母或数字。正则表达式`/^[a-zA-Z0-9]{3,12}$/.`匹配由3到12个字母或数字组成的字符串。 这些函数展示了正则表达式在实际应用中的灵活性和实用性,它们可以根据具体需求进行调整,以适应不同类型的输入验证。在JavaScript中,`exec()`方法用于在字符串中执行一个正则表达式,并返回匹配的结果。如果匹配成功,`exec()`会返回一个数组,包含匹配的子串;如果未找到匹配,它将返回`null`。在上述代码中,如果没有匹配,`if(!patrn.exec(s))`将返回`true`,表示验证失败。