Js正则表达式

什么是正则表达式?

是构成搜索模式的字符序列。

该搜索模式可用于文本搜索和文本替换操作。

一、元字符

元字符正则表达式
\d 0-9任意一个数字
[] 方括号之间的任意一个字符
[^] 非其中的任意一个字符
\w 数字、字母、下划线
. 除换行符外的任意一个字符
| 或(多用于月份)
? 0-1次
+ 1-多次
* 0-多次
{,} 最少,最多
^ 开始(用于表单页面)
$ 结束(用于表单页面)

 

 

二、常见的正则表达式方法

1、手机号验证的正则表达式

(一般手机号以1开头有十一位)

 

^1[0-9]{10}$

1 // 手机号
2 var txt="13559123478";
3 var reg=/^1[0-9]{10}$/;
4 console.log(reg.test(txt));

 

(验证比较精确的表达式)

^1[3|4|5|7|8][0-9]{9}$

1 var txt="13559123478";
2 var reg=/^1[3][0-9]{9}$/;
3 console.log(reg.test(txt));

 

2、邮箱正则表达式

     (1)、只允许英文字母、数字、下划线、英文句号以及中划线

举例:.Nice-001@qq.com

分析邮件名称部分:

  • 26个大小写字母表现为a-z A-Z
  • 数字表示为0-9
  • 下划线表示为_
  • 中划线表示为-

邮件表达式为:[a-zA-Z0-9_-]+

分析域名部分:12-34.com.cn

  • 域名类似 "##.##.##.##"组成
  • ##部分可以表示为  [a-zA-Z0-9_-]+
  • ".##"部分可以表示为  \.[a-zA-Z0-9_-]+
  • 多个".##"部分可以表示为 (\.[a-zA-Z0-9_-]+)+

域名部分可以表示为:  [a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+

 

最终表达式为:“^”匹配邮箱的开头  “$匹配邮箱的结尾”

::  ^  [a-zA-Z0-9_-]+@ [a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

 


   (2)名称允许汉字、字母、数字,域名只允许英文域名

::^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

3、汉字正则表达式

::[\u4e00-\u9fa5]

// 中文
var txt="你";
var reg=/[\u4e00-\u9fa5]/;
//   \u4e00-\u9fa5   
//   \u4e00-\u4e00
console.log(reg.test(txt));

 

 

4、年月日正则表达式

1 ^((([0-9]{2})(0[48]|[2468][048]|[13579][26]))   #闰年,能被4整除但不能被100整除
2 |((0[48]|[2468][048]|[13579][26])00)   #闰年,能被400整除
3 -02-29)  #匹配闰年2月29日这一天。如果不是这一天,则由下面式子继续匹配验证。 
4 |([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}) #平年(0001-9999)
5 -(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))   #月日,1、3、5、7、8、10、12月有31天
6 |((0[469]|11)-(0[1-9]|[12][0-9]|30))   #月日,4、6、9、11月有30天
7 |(02-(0[1-9]|[1][0-9]|2[0-8])))   #平年2月只有28天,月日表示为【02-01至02-28】

 

5、密码验证

 1 /**
 2  * 密码至少包含 数字和英文,长度6-20
 3  */
 4 String reg = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$";
 5 
 6  /**
 7    * 密码包含 数字,英文,字符中的两种以上,长度6-20
 8    */
 9  String reg = "^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,20}$";
10 
11   /**
12     * 至少包含数字跟字母,可以有字符
13     */
14    String reg = "(?=.*([a-zA-Z].*))(?=.*[0-9].*)[a-zA-Z0-9-*/+.~!@#$%^&*()]{6,20}$";

 

上一篇:【正点原子FPGA连载】第二十六章红外遥控实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1


下一篇:【产品动态】Quick BI的可视分析之路