详细信息 您现在的位置是:首页 > jQuery

常用的正则表达式及应用

来源: 发布时间:2024-07-11 506 人已围观

摘要在JavaScript中,正则表达式(Regular Expressions)是一种强大的文本处理工具,用于搜索、替换、验证等文本操作。下面列出了一些常用的正则表达式及其用途

在JavaScript中,正则表达式(Regular Expressions)是一种强大的文本处理工具,用于搜索、替换、验证等文本操作。下面列出了一些常用的正则表达式及其用途:

1、验证电子邮件
/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;


2、验证手机号码(以中国大陆为例)
/^1[3-9]\d{9}$/;

3、验证固定电话
/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/;

4、验证身份证号码(15位或18位)
/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;

5、验证中文
/^[\u4e00-\u9fa5]+$/;

6、验证由数字和26个英文字母组成的字符串
/^[A-Za-z0-9]+$/;

7、验证由数字、26个英文字母或者下划线组成的字符串
/^\w+$/;

8、验证用户名(以字母开头,长度在6-16之间,只能包含字母、数字和下划线)
/^[a-zA-Z]\w{5,15}$/;

9、验证密码(以字母开头,长度在6-18之间,只能包含字母、数字和下划线)
/^[a-zA-Z]\w{5,17}$/;

10、验证IP地址
/((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/;

11、匹配HTML标签
/<("[^"]*"|'[^']*'|[^'">])*>/g;

12、密码正则必须字母大小写数字特殊符号
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$


使用这些正则表达式时,通常会使用RegExp对象或者字符串的match()、replace()、test()等方法来进行操作。例如,验证一个字符串是否为电子邮件:

var email = "example@example.com";  
var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;  
if(emailRegex.test(email)) {  
    console.log("这是一个有效的电子邮件地址");  
} else {  
    console.log("这不是一个有效的电子邮件地址");  
}



function validatePassword(password) {  
    const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;  
    return regex.test(password);  
}  
  
console.log(validatePassword("Password1!")); // false,因为缺少大写字母  
console.log(validatePassword("PASSWORD1!")); // false,因为缺少小写字母  
console.log(validatePassword("pass1!")); // false,因为缺少大写字母  
console.log(validatePassword("Pass@123")); // true,满足所有条件


这个正则表达式的组成部分解释如下:

^ 和 $ 分别是字符串的开始和结束锚点。

(?=.*[a-z]) 是一个前瞻断言,确保至少有一个小写字母。

(?=.*[A-Z]) 确保至少有一个大写字母。

(?=.*\d) 确保至少有一个数字。

(?=.*[@$!%*?&]) 确保至少有一个特殊符号(这里我选择了@、$、!、%、*、?、&作为示例,你可以根据需要添加或删除特殊字符)。

[A-Za-z\d@$!%*?&]{8,} 指定了密码字符集(包括大小写字母、数字和上面列出的特殊符号),并且密码长度至少为8个字符。

请注意,这个正则表达式是特定于你的要求的,并且你可能需要根据实际需要调整特殊字符集。



上一篇: js复制文本到剪切板

下一篇: jQuery

站点信息

  • 电话:15226178738
  • QQ:1697915848
  • 邮箱:1697915848@qq.com