表 达 式 符 号 | 含 义 |
* | 匹配前面的字符0-多次 |
+ | 匹配前面的字符1-多次 |
? | 匹配前面的字符0或者1次 |
{n} | 匹配前面的字符 n次 |
{n,m} | 匹配前面的字符 n到m多次 |
{n,} | 匹配前面的字符n次以上 |
\b | 匹配单词边界 |
\B | 匹配单词非边界 |
\d | 匹配数字字符 |
\s | 匹配空白字符 |
\( \) | 将中间表达式定义为组 |
[Rr].t | 匹配大小写 |
\w | 匹配任何包括下划线之内的单词字符 |
$ ^ | 行尾 行首,在[]里面则是非 |
表达式不加入/g,则只替换第一个匹配;如果加入/g,则替换所有匹配。
注意:贪婪模式 非贪婪模式 性能区别很大. 默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。
regExp除了match test方法外 还有exec(返回查找到的第一个值,返回结果为数组,包含index匹配位置 lastInput下一个匹配位置) search(第一个匹配位置) replace split等方法
eg:
1:A[0-9]{3} 匹配A后面跟着3个0-9之间的数字 但是不匹配四个
2:
foo(10,7,2) foo(7,10,2)
foo(x+13,y-2,10) foo(y-2,x+13,10)
foo( bar(8), x+y+z, 5) foo( x+y+z, bar(8), 5)
下面这条替换命令能够实现这一魔法:
:%s/foo(\([^,]*\),\([^,]*\),\([^,)]*\))/foo(\2,\1,\3)/g
3:验证用户名和密码:("^[a-zA-Z]\w{5,15}$")
4:验证电话号码:("^(\\d{3,4}-)\\d{7,8}$")(像010-12345678或0376-7654321)
5:验证手机号码:
var phoneVerify = /^(0|86|17951)?(13[0-9]|15[012356789]|17[3678]|18[0-9]|14[57])[0-9]{8}$/.test(val);
6:验证身份证号(15位或18位数字):"/^\d{14}[[0-9],0-9xX]$/";
7:验证Email地址:("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\.\\w+([-.]\\w+)*$");
var emailVerify = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(val);
8:只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
9:获取日期正则表达式:\\d{4}[年|\-|\.]\\d{\1-\12}[月|\-|\.]\\d{\1-\31}日?
其它网站转载:
- 1.由数字、26个英文字母或者下划线组成的字符串:
- ^[0-9a-zA-Z_]{1,}$
- 2.非负整数(正整数 + 0 ):
- ^/d+$
- 3. 正整数:
- ^[0-9]*[1-9][0-9]*$
- 4.非正整数(负整数 + 0):
- ^((-/d+)|(0+))$
- 5. 负整数 :
- ^-[0-9]*[1-9][0-9]*$
- 6.整数:
- ^-?\d+$
- 7.非负浮点数(正浮点数 + 0):
- ^\d+(/./d+)?$
- 8.正浮点数 :
- ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$
- 9. 非正浮点数(负浮点数 + 0):
- ^((-\d+(/.\d+)?)|(0+(/.0+)?))$
- 10.负浮点数 :
- ^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$
- 11. 浮点数 :
- ^(-?\d+)(/.\d+)?$
- 12.由26个英文字母组成的字符串 :
- ^[A-Za-z]+$
- 13. 由26个英文字母的大写组成的字符串 :
- ^[A-Z]+$
- 14.由26个英文字母的小写组成的字符串 :
- ^[a-z]+$
- 15. 由数字和26个英文字母组成的字符串 :
- ^[A-Za-z0-9]+$
- 16.由数字、26个英文字母或者下划线组成的字符串 :
- ^\w+$
- 17.email地址 :
- ^[\w-]+(/.[\w-]+)*@[\w-]+(/.[\w-]+)+$
- 18.url:
- ^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$
- 19. 年-月-日:
- /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/
- 20.月/日/年:
- /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/
- 21.Emil:
- ^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$
- 22. 电话号码:
- (d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?
- 23.IP地址:
- ^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$
- 24. 匹配中文字符的正则表达式:
- [/u4e00-/u9fa5]
- 25.匹配双字节字符(包括汉字在内):
- [^/x00-/xff]
- 26. 匹配空行的正则表达式:
- /n[/s| ]*/r
- 27.匹配HTML标记的正则表达式:
- /<(.*)>.*<///1>|<(.*) //>/
- 28.匹配首尾空格的正则表达式:
- (^\s*)|(\s*$)
- 29.匹配Email地址的正则表达式:
- \w+([-+.]/w+)*@\w+([-.]\w+)*/./w+([-.]/w+)*
- 30. 匹配网址URL的正则表达式:
- ^[a-zA-z]+://(//w+(-//w+)*)(//.(//w+(-//w+)*))*(//?//S*)?$
- 31. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
- ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
- 32. 匹配国内电话号码:
- (/d{3}-|/d{4}-)?(/d{8}|/d{7})?
- 33.匹配腾讯QQ号:
- ^[1-9]*[1-9][0-9]*$
- 34. 只能输入数字:
- ^[0-9]*$
- 35.只能输入n位的数字:
- ^/d{n}$
- 36.只能输入至少n位的数字:
- ^/d{n,}$
- 37.只能输入m~n位的数字:
- ^/d{m,n}$
- 38.只能输入零和非零开头的数字:
- ^(0|[1-9][0-9]*)$
- 39.只能输入有两位小数的正实数:
- ^[0-9]+(.[0-9]{2})?$
- 40. 只能输入有1~3位小数的正实数:
- ^[0-9]+(.[0-9]{1,3})?$
- 41.只能输入非零的正整数:
- ^/+?[1-9][0-9]*$
- 42. 只能输入非零的负整数:
- ^/-[1-9][0-9]*$
- 43.只能输入长度为3的字符:
- ^.{3}$
- 44. 只能输入由26个英文字母组成的字符串:
- ^[A-Za-z]+$
- 45.只能输入由26个大写英文字母组成的字符串:
- ^[A-Z]+$
- 46. 只能输入由26个小写英文字母组成的字符串:
- ^[a-z]+$
- 47.只能输入由数字和26个英文字母组成的字符串:
- ^[A-Za-z0-9]+$
- 48. 只能输入由数字和26个英文字母或者下划线组成的字符串:
- ^/w+$ ^[A-Za-z0-9_]+$
- 49.验证用户密码(正确格式为: 以字母开头,长度在5~17 之间,只能包含字符、数字和下划线)
- ^[a-zA-Z]/w{5,17}$
- 50.验证是否包含有 ^%&',;=?$/"等字符:
- [^%&',;=?$/x22]+
- 51.只能输入汉字:
- ^[u4e00-u9fa5]{0,}$
- 52、只含有汉字、数字、字母、下划线不能以下划线开头和结尾
- ^(?!_)(?!.*?_$)[a-zA-Z0-9_u4e00-u9fa5]+$
- 53、只含有汉字、数字、字母、下划线,下划线位置不限
- ^[a-zA-Z0-9_u4e00-u9fa5]+$
- 54、2~4个汉字
- @"^[u4E00-u9FA5]{2,4}$