js正则

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

                                      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)



  

 

 

 

posted @ 2019-08-21 20:51  外部学习者  阅读(461)  评论(0编辑  收藏  举报