当前位置: 首页 > article >正文

js 正则规则 和 常用正则表达式

一、基础正则规则

  1. 匹配特定字符
  • 匹配数字:
	\d:匹配一个数字(0-9)。
	\d+:匹配一个或多个数字。
	示例:/\d+/g 可以匹配字符串中的所有数字。
  • 匹配字母或单词:
	\w:匹配一个字母、数字或下划线([A-Za-z0-9_])。
	\w+:匹配一个或多个字母、数字或下划线。
	示例:/\w+/g 可以匹配字符串中的所有单词。
  • 匹配空白字符:
	\s:匹配一个空白字符(空格、制表符、换行等)。
	\s+:匹配一个或多个空白字符。
	示例:/\s+/g 可以匹配字符串中的所有空白。
  1. 匹配特定位置
  • 匹配开头和结尾:
	^:匹配字符串的开头。
	$:匹配字符串的结尾。
	示例:/^Hello/ 匹配以 Hello 开头的字符串。
  • 匹配单词边界:
	\b:匹配单词的边界(单词的开头或结尾)。
	示例:/\bcat\b/ 匹配独立的单词 cat,而不会匹配 category 中的 cat。
  1. 匹配重复模式
  • 匹配固定次数:
	{n}:匹配前面的字符恰好 n 次。
	示例:/\d{3}/ 匹配连续的 3 个数字。
  • 匹配范围次数:
	{n,m}:匹配前面的字符至少 n 次,最多 m 次。
	示例:/\d{2,4}/ 匹配 24 个连续数字。
  • 匹配零次或多次:
	*:匹配前面的字符零次或多次。
	示例:/a*/ 可以匹配 ''(空)、'a''aa' 等。
  • 匹配一次或多次:
	+:匹配前面的字符一次或多次。
	示例:/a+/ 可以匹配 'a''aa',但不能匹配 ''
  • 匹配零次或一次:
	?:匹配前面的字符零次或一次。
	示例:/a?/ 可以匹配 '''a'
  1. 匹配字符集合
  • 匹配特定字符:
	[abc]:匹配 a、b 或 c 中的任意一个字符。
	示例:/[aeiou]/g 匹配字符串中的所有元音字母。
  • 匹配字符范围:
	[a-z]:匹配任意小写字母。
	[A-Z]:匹配任意大写字母。
	[0-9]:匹配任意数字。
	示例:/[a-zA-Z]/g 匹配所有字母(大小写均可)。
  • 排除特定字符:
	[^abc]:匹配除了 a、b、c 之外的任意字符。
	示例:/[^0-9]/g 匹配所有非数字字符。
  1. 分组和捕获
  • 分组:
	(abc):将 abc 作为一个分组。
	示例:/(\d{2})-(\d{2})/ 可以匹配 12-34,并捕获 1234
  • 非捕获分组:
	(?:abc):分组但不捕获。
	示例:/(?:\d{2})-(\d{2})/ 匹配 12-34,但只捕获 34
  1. 贪婪与非贪婪匹配
  • 贪婪匹配:
	默认情况下,正则表达式会尽可能多地匹配字符。
	示例:/a.*b/ 匹配 'aabab' 中的 'aabab'
  • 非贪婪匹配:
	在量词后加 ?,表示尽可能少地匹配字符。
	示例:/a.*?b/ 匹配 'aabab' 中的 'aab'

二、常用正则表达式

  1. 邮政编码: 6位数字
   	var postcodeRE=/^\d{6}$/;
  1. 由26个英文字母组成的字符串(包含大小写)
   	var englishRE=/^[A-Za-z]+$/;
  1. Email电子邮件地址
   	var emailRE=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
  1. InternetURL网址
	// 正则1
   	var urlRE= /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/;
	
	// 正则2
   	var urlRE= /^(https?://)?([\da-z.-]+).([a-z.]{2,6})([/\w .-]*)*/?$/
  1. QQ号
   	var qqRE=/^[1-9]\d{4,12}$/;
  1. 手机号码验证
	// /^[1][3,4,5,7,8,9][0-9]{9}$/   => 或者 /^1[3-9]\d{9}$/
	// ^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
	
	//  /^1\d{10}$/    ==>> 以1开头,11位
	var mobbileRE=/^((16[0-9])|(17[0-9])|(13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$/;
  1. 日期格式
// YYYY-MM-DD
var dateRE = /^\d{4}-\d{2}-\d{2}$/
  1. 国内座机电话号码
	//(0511-4405222、021-87888822)
	var phoneRE=/^\d{3}-\d{8}|\d{4}-\d{7}$/;
  1. 身份证号码
	//15位和18位身份证号码的正则表达式
	//^\d{15}|\d{18}$
	var idRE=/^(^[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])$)$/;
  1. 帐号或者密码验证
	//字母开头,允许5-16字节,允许字母数字下划线
	var userNameRE=/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/;
	//以字母开头,长度在6~18之间,只能包含字母、数字和下划线
	var passwordRE=/^[a-zA-Z]\w{5,17}$/;
  1. IP地址
   	var ipRE=/((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)(\.((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d)){3}/;
  1. 输入框只能输入数字并且最多两位小数
	validatePrice(rule, value, callback) {
	     // 正则验证只能是数字并且最多两位小数  下面两个正则都可以
	     const result = (/^\d+(.\d{1,2})?$/).test(value);
	     // const result = (/^\d{1,10}(\.\d{0,2})?$/).test(value);
	     if (!result) {
	       callback(new Error('套餐金额只能是数字并且最多两位小数'));
	     } else {
	       callback();
	     }
	}

文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出!


http://www.kler.cn/a/545431.html

相关文章:

  • PyQT项目如何在Linux中自启显示界面
  • k8s启空容器用于排查问题
  • Git命令摘录
  • 从递归到动态规划(一维)
  • js实现点击音频实现播放功能
  • redis RDB AOP区别,文件格式及内容
  • Java开发中的连接池技术介绍
  • 【设计模式】【行为型模式】迭代器模式(Iterator)
  • 探索ELK 的魅力
  • C#的async异步方法里如果使用了await,那么它跟同步方法有什么区别?
  • Windows Docker笔记-dockerfile
  • Windows 11 卸载 Edge
  • 基于华为云镜像加速器的Docker环境搭建与项目部署指南
  • Discourse 优化 PostgreSQL 状态表
  • dedecms 开放重定向漏洞(附脚本)(CVE-2024-57241)
  • 进阶数据结构——离散化
  • 机器学习数学基础:21.特征值与特征向量
  • 在WPS中通过JavaScript宏(JSA)调用本地DeepSeek API优化文档教程
  • tomcat html乱码
  • C++ 设计模式-适配器模式