看了正则表达式的一些规则,入门还是比较简单的,以下是我做的一些整理。
一、常用元字符(字母均小写)
. 匹配除换行符(\ n)的以外的任意字符
\ w匹配字母或数字或汉字或下划线
\ s匹配任意的空白符,一般搭配*,即\ s *表示0或多个空白符
\ d匹配数字
\ b匹配单词的开始或结束,平常没怎么用到
^匹配字符串的开始
$匹配字符串的结束
二,常用反义词
\ W匹配任意不是字母,数字,汉字,下划线的字符
\ S匹配不是空白字符的字符
\ D匹配任意非数字的字符
\ B匹配不是单词开头或结束的位置
[^ x]匹配除了x以外的任意字符
[^ aeiou]匹配除了aeiou这几个字母以外的任意字符
三,常用限定符
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
四,常用正则表达式
1、手机号
var phone_regex = / ^ 0?(13 | 14 | 15 | 18 | 17)[0-9] {9} $ /
console.log(phone_regex.test( '15388990011')); //true
2、邮箱
var email_regex = / ^ \ w [ - \ w。] *([A-Za-z0-9] [ - A-Za-z0-9] + \。)+ [A-Za-z] 14} $ /;
console.log(email_regex.test('12345678@qq.com')); //true
补充:
[-\ w.]表示符合 - 或者\ w或者。的一个字符
(abcd)表示字符串'abcd'
(a | b | c | d)表示a或者b或者c或者d
3、中文
var china_regex = / ^ [\ u4e00- \ u9fa5] $ /;
console.log(china_regex.test( '栗')); //true
4、两位小数的金额
var money_regex = /(^[1-9](\d+)?(\.\d{1,2})?$)|(^(0){1}$)|(^\d\.\d{1,2}?$)/
console.log(money_regex.test(12.11)); //true
推荐:
正则生成工具:HTTP://www.sojson.com/regex/generate