正则表达式

正则表达式

一.限定符

? 前面的那个字母出现零次或者1次 ab?c ------------------>(ac)-(abc)

*号 零个或者多个 ab * c ------------------>.(ac)-(abc)-(abbc)

+号 一次以上的字符 a+c ------------------->(ac)-(aac)

{a,b} a-b次 (b可以不写,那么就代表大于等于a次) a{1,4}b--------------->(aaaab)-(ab)

(ab)+ 匹配多次出现的 (ab)±----------------->abababab

二.或运算符

a (bc|de) a bc或者a de

a bc|de 不加括号就变成a bc或者de

三.字符类

[abc]+ 由abc这几个字母所构成的单词 [abc]±----------------------->acbcccc

[a-zA-Z0-9]+ 匹配a-zA-Z0-9范围内的字符 [a-zA-Z0-9]+ ---------------->bea9jdskhjdhfjhADS

^ 代表匹配除了尖号后面列出的[以外]的字符(包括换行符) [^0-9]-------------------->非数字

四.元字符

大多数元字符都是以\为主

\d 数字字符 相当于[0-9]

\D 非数字字符

\w 单词字符(英文、数字以及下划线)[A-Za-z]

\W 非单词字符

\s 空白符(包含Tab和换行符)

\S 非空白符

\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符

. 包括任意字符但是不包括换行符

^ 匹配行首$匹配行尾

^a 只会匹配行首的a

a$ 只会匹配行尾的a

五.贪婪匹配转化为懒惰匹配

<.+> 默认贪婪匹配“任意字符”

<.+?> 懒惰匹配“任意字符”

1.匹配16进制的reb颜色值

// #[a-ZA-F0-9]{6}\b---------------->首先#开头并且是由a-ZA-F0-9中六位数字组成,\b代表单词字符的边界 #ffffff

六.例子

1.*大于0的整数

/^\+?[1-9]\d*$/ ------- \+默认可以识别出来,也可以不写

?代表0或者1次,*任意次数 (考虑到一位还是两位----)

\d* 有数字或者没有

所以他是首字母有+或者没有加,第一个数字是1-9并且后面的数字有或者没有

2.请输入数字,最多两位小数

2.1首先如果是正数的话-不包含0

10|11 后面可以写一块

(^[1-9]\d*$)|(^[1-9]\d*[.]{1}[0-9]{1,2}$)|(^0[.]{1}[0-9]{1,2}$)

(^[1-9]\d*$)|(^[1-9]\d*[.]{1}[0-9]{1,2}$)----有错

2.2如果是负数

/(^\-{1}[1-9]\d*$)|(^\-{1}[1-9]\d*[.]{1}[0-9]{1,2}$)|(^\-{1}0[.]{1}[0-9]{1,2}$)/

2.3正数负数都可以,保留两位小数-不包含0

/(^\-?[1-9]\d*$)|(^\-?[1-9]\d*[.]{1}[0-9]{1,2}$)|(^\-?0[.]{1}[0-9]{1,2}$)/

2.4 如果包含0

正数+0 加上^0$\b (\b是单词字符的边界)

/(^\-?[1-9]\d*$)|(^\-?[1-9]\d*[.]{1}[0-9]{1,2}$)|(^\-?0[.]{1}[0-9]{1,2}$)|(^0$\b)/

((^0$\b)|^[1-9]*$)|(^[1-9]+[.]{1}[0-9]{1,2}$)------有错

3.范围:0-999999.99,支持两位小数

0.00与0.0与0000+

(^0[.][0-9][1-9]$)|(^0[.][1-9][0-9]$)|(^[1-9]\d{5}[.][0-9]{1,2})|(^0$\b)-----有错

(^0[.][0-9][1-9]$)|(^0[.][1-9][0-9]$)|(^[1-9]\d{0,5}[.][0-9]{1,2})|(^0$\b)|([1-9]\d{0,5})

(^0[.][0-9][1-9]$)|(^0[.][1-9][0-9]$)|(^[1-9]\d{0,5}([.][0-9]{1,2})?)|(^0$\b)

4.范围:1-99的整数

(^[1-9]$)|(^[1-9]\d$)

^[1-9]\d{0,1}$

5.正整数

^[1-9]([0-9])*$

6.1-9999999内的整数

^[1-9]\d{0,6}$

7.匹配中文字符

/^[\u4e00-\u9fa5]+$/

8.仅支持10以内的一位小数的输入

^[1-9][.][0-9]{1}$

[0-9][.][0-9]{1}

(^[1-9][.][0-9]{1}$)|(^0[.][0-9]{1}$)

9.请输入中文、数字和英文

^[A-Za-z0-9\u4e00-\u9fa5]+$

10.100字以内的备注

10.1如果包含换行用这个

/^[\w\W]{0,100}$/

10.2不包含换行

^.{0,100}$

11.邮箱正则校验:

/^[a-zA-Z0-9.! #$%&'*+\/=?^_{|}~-]+@a-zA-Z0-9?(?:.a-zA-Z0-9?)+[a-z]{2,}$/`

12.手机号校验

12.1(国内):

^1(3|4|5|7|8)\d{9}$

12.2(国际):

/^((\+\d{1,3}(-| )??\d?(-| )?\d{1,5})|(?\d2,6?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/

13.身份证校验:-----多查

身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X

(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)

14.真实姓名:--------***

js验证真实姓名,是用的unicode字符的来进行匹配,而中国人的姓名长度一般都是2-4,所以重复匹配{2,4}次

/^[\u4e00-\u9fa5]{2,4}$/

15.禁止输入表情符

如果返回是true那么就是表情符

(\ud83c[\udc00-\udfff])|(\ud83d[\udc00-\udfff])|(\ud83e[\udc00-\udfff])|[\u2100-\u32ff]|[\u0030-\u007f][\u20d0-\u20ff]|[\u0080-\u00ff]

16.车牌的

17.场景营销------

你可能感兴趣的:(js,正则表达式)