文档章节

js正则

o
 osc_wws45aot
发布于 2019/08/21 20:51
字数 1253
阅读 0
收藏 0

 正则:检测字符串的一条规则。目标就是字符串 只要表单提交的都是字符串

                                      Json的本质  还是字符串

 

 

是一种对文本字符串进行验证、格式化的非常强大的工具。使用正则表达式可以轻松的识别和操纵文本,
从而节省大量的编程时间。例如验证用户的输入的电话号码、身份证号、电子邮件、QQ号等是否符合正确格式。
正则基本语法:
var reg = /pattern/ flags;
//构造函数方式创建
var reg = new RegExp(pattern,flags);

 

一、元字符
字符		匹配
\		在字面意义和特殊意义之间切换
.		除了换行符外的任何字符
^		脱字符,字符串的开头
$		字符串的结尾
*		匹配前一项零次或多次,等价于{0,}
+		匹配前一项一次或多次,等价于{1,}
?		匹配前一项0次或1次,等价于{0,1}
\s		任何一个空白字符(\f \n \r \t \v )
\S		非空白字符
\f		换页符
\n		换行符
\r		回车符
\t		制表符
\d		0~9任意数字,相当于[0-9]
\D		任何非数字
\w		任何字母、数字及下划线
\W		除数字、字母及下划线外的其他字符
{n}		前面的字符正好出现n次,n代表数字
{n,}		前面的字符至少出现n次,
{n,m}	前面的字符出现n~m次。
[abcd]	与[ ]中任何字符匹配的字符集
[^abcd]	与[ ]中任何字符都不匹配的字符集
[A-Z]	与[ ]中的字符串范围匹配的字符集
()		一个组,即将括号中的作为一个整体
x | y		x或者y。优先匹配左边,左边能匹配上,右边就不匹配。

 

  

注意1:在使用? 或* 时要注意,由于这些字符可能匹配0个字符,因此他们允许什么都不匹配。例如:/a*/
实际上与字符串"bbbb","10029"都是匹配的,因为字符串中含有0 个a 注意2: 当使用* + {} 等正则字符时,匹配的只是紧邻符号的单个字符。如果需要匹配多个字符,需要() 将多个字符括起来

  

 

二、正则表达式的方法
2.1  test()  返回布尔类型,如果有匹配项返回true。没有返回false
2.2  exec() 查找并返回匹配结果,并以长度为1的数组的形式返回。数组的第一项即为匹配的结果。
如果没有匹配结果返回null;exec() 会受到flags参数g的影响。正常情况不需要加g;
如果指定了g,则下次调用exec() 时,会从上个匹配的lastIndex开始查找。

  

 

匹配特定数字:  ^[1-9]/d*$ 
//匹配正整数  ^-[1-9]/d*$ 
//匹配负整数  ^-?[1-9]/d*$ 
//匹配整数  ^[1-9]/d*|0$ 
//匹配非负整数(正整数 + 0)  ^-[1-9]/d*|0$ 
//匹配非正整数(负整数 + 0)  ^[1-9]/d*/./d*|0/./d*[1-9]/d*$ 
//匹配正浮点数  ^-([1-9]/d*/./d*|0/./d*[1-9]/d*)$
//匹配负浮点数  ^-?([1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0)$
//匹配浮点数  ^[1-9]/d*/./d*|0/./d*[1-9]/d*|0?/.0+|0$
//匹配非负浮点数(正浮点数 + 0)  ^(-([1-9]/d*/./d*|0/./d*[1-9]/d*))|0?/.0+|0$
//匹配非正浮点数(负浮点数 + 0)

匹配特定字符串: 
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串 
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串 
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串 
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串 

匹配中文字符的正则表达式: [/u4e00-/u9fa5] 
匹配双字节字符(包括汉字在内):[^/x00-/xff] 
匹配空行的正则表达式:/n[/s| ]*/r 
匹配HTML标记的正则表达式:/<(.*)>.*<///1>|<(.*) //>/ 
匹配首尾空格的正则表达式:(^/s*)|(/s*$) 
匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* 
匹配网址URL的正则表达式:http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?

  

Match()   查找找到一个或者多个正则表达式的匹配,有就返回查找的结果,没有就算null

语法:string.match(reg)

 

Search  查找与正则表达式相匹配的值  检测不到返回-1,检测找了 返回查找的字符首次在字符中的位置

语法:string.Search(reg)   

 

 

字符串检索  分两种结果 第一种是查找型    查找就会终止,不会向下再次查找

   分两种  第一是捕获首次

第二种是捕获型 出现的    第一是捕获首次出现的   第二种是捕获所有的/g

 

Replace()     在字符串中查找匹配的字串,并替换与正则表达式匹配的字串

如果检索到,返回替换后的新字符串,如果没有检索到,返回原字符串

   语法:string.replace(reg,newstring)


  

 

 

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

face-api.js 示例

该示例是基于GitHub的一个开源项目:https://github.com/justadudewhohacks/face-api.js 其核心的库是用js写的,所以它可以在web项目或nodejs 中使用。支持的功能有:【人脸识别】,【表情识...

Canaan_
26分钟前
13
0
树莓派4b + Ubuntu20.04 Server 安装Java8

安装环境: 树莓派4b + Ubuntu20.04 Server 32位 1. 下载jdk https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 2. 解压 tar -zxvf jdk-8u251-linux-arm32-vf......

SummerGao
59分钟前
9
0
项目实战:Qt+OpenCV图像处理与识别算法平台

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
今天
7
0
北京智源大会 | AI + 医疗的下一个十年:从公共卫生预警到人类基因密码破解 道翰天琼认知智能api机器人接口。

医疗事关人身安全,要求极高,容错率极低,因此,知识壁垒和技术壁垒都很高。过去,AI系统更多的是服务于终端,辅助医生诊断、决策。但是,医疗很复杂,直接切入终端问题很多。未来十年,AI+...

jackli2020
今天
16
0
源于HystrixCommandStartStream和RollingCommandMaxConcurrencyStream 的 RxJava demo

其实,最近在工作之余看Hystrix源代码已经有一个多月了, 除了对 HystrixCommandProperties ,HystrixCommand 和AbstractCommand 几个类比较了解以外,其余看山不是山,比较懵, 主要是因为H...

专业写BUG的程序员
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部