你的位置:首页 > Java教程

[Java教程]正则表达式来袭


正则表达式蛮强大的哈,废话不多说, 直接上整理内容

一:基本匹配符:

\d 匹配数字      eg:'5\d0'------->'580'

\w 匹配字母或数字   eg:'\d\w\w'--------->'8zh'

.   匹配除换行符外的任何一个字符任意字符    eg:'zh.'----------->'zh&'

\s 空白符(tab)或空格

二:匹配字符长度:

* 表示任意个字符(包括0个)

+ 表示至少一个字符

? 表示0个或1个字符

{n} 表示n个字符

{n,m}表示n-m个字符

 

********************************************************

练习题一道:\d{3}\s+\d{3,8};

答案在这里2333: 匹配的是由3个数字紧接至少一个空格或空白符紧接3到8个数字;

********************************************************

 

<<<<<   补充一句: 像'-'这样的特殊字符需要转译才能匹配哦~ like this '\-'   >>>>>

 

三: 但是如果单纯是这样的匹配的话, 未免有点简单点了, 面对复杂的匹配我们还需要更精准的匹配方法:

[0-9a-zA-Z\_]  可以匹配一个数字或者字母或者下划线, 亲测: '0', 'a', 'Z', '_'都能匹配, 所以说介种表达方式是可或可与的组成方式;

[0-9a-zA-Z\_]+ 可以匹配至少由一个数字或字母或下划线组成的字符串;

[a-zA-Z\_][0-9a-zA-Z\_]* 可以匹配由字母或下划线开头, 后面紧接任意一个数字或字母或下划线;

[a-zA-Z\_][0-9a-zA-Z\_]{0,19} 限制长度在1到20, 为什么是1到20呢, 开头占一位后面紧接的字符串限制在0到19, 所以最大长度限制在20啦;

A|B 可以匹配A或B. [J|j]aina可以匹配jaina或Jaina;

^  表示必须以某字符开头, eg: ^\d 表示必须以数字开头的

$  表示必须以某字符结尾 , eg: \d$ 表示必须以数字结尾, 注意它们俩的表达方式^是放在字符前面的, $是放在字符后面的

 

四: js中的验证方法:

var reg='\d{3}\s+\d{3,8}';

var tel='010 123456';

console.log(reg.test(tel));//true

注: 本文内容来自参考廖大哥的教程, 原文地址:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832260566c26442c671fa489ebc6fe85badda25cd000