记录一些常用的正则表达式,也可以提高一下工作效率嘛
格式:re=new RegExp("pattern","g");re=/pattern/g;^首,$尾
方法:
i (ignore):忽略大小写;
g (global):查找全部;
search:查找,返回第一个查到的位置;
match:匹配内容,返回数组;
replace:替换;
字符类:
任意字符 [abc]。例子:o[usb]t——obt、ost、out;
范围 [a-z]、[0-9]。例子:id[0-9]——id0、id5;
排除 [^a]。例子:o[^0-9]t——oat、o?t、ot;
组合 [a-z0-9A-Z]
转义字符:
\d:数字; \w:字母数字下划线; \s:所有空白字符;
\D:非数字; \W:非字母数字下划线; \S:非空白字符;
\b:单词边界; \r:匹配一个回车符; \n:匹配一个换行符;
特殊字符:
$:匹配输入字符串的结尾位置.要匹配 $ 字符本身,请使用 \$;
( ):标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \);
*:匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*;
+:匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+;
.(点):匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \.;
[:标记一个中括号表达式的开始。要匹配 [,请使用 \[;
?:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?;
\:将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "(";
^:匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^;
{:标记限定符表达式的开始。要匹配 {,请使用 \{;
|:指明两项之间的一个选择。要匹配 |,请使用 \|;
exp1(?=exp2):查找 exp2 前面的 exp1;
(?<=exp2)exp1:查找 exp2 后面的 exp1;
exp1(?!exp2):查找后面不是 exp2 的 exp1;
(?<!exp2)exp1:查找前面不是 exp2 的 exp1;
量词(出现次数):
{n,m}:至少n次,最多m次;
{n,}:至少n次;
*:任意次 {0,};
?: 零次或一次 {0,1};
+:一次或任意次{1,};
{n}:正好n次;
* 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个 ? 就可以实现非贪婪或最小匹配。
数字:^[0-9]*$
n位的数字:^d{n}$
至少n位的数字:^d{n,}$
m-n位的数字:^d{m,n}$
零和非零开头的数字:^(0|[1-9][0-9]*)$
非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$
正数、负数、和小数:^(-|+)?d+(.d+)?$
汉字:^[\u4e00-\u9fa5]{0,}$
英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
长度为3-20的所有字符:^.{3,20}$
由26个英文字母组成的字符串:^[A-Za-z]+$
由26个大写英文字母组成的字符串:^[A-Z]+$
由26个小写英文字母组成的字符串:^[a-z]+$
由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
由数字、26个英文字母或者下划线组成的字符串:^w+$ 或 ^w{3,20}$
中文、英文、数字包括下划线:^[u4E00-u9FA5A-Za-z0-9_]+$
中文、英文、数字但不包括下划线等符号:^[u4E00-u9FA5A-Za-z0-9]+$ 或 ^[u4E00-u9FA5A-Za-z0-9]{2,20}$
禁止输入含有~的字符:[^~"]+
Email地址:^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
URL:((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#](?!(jpg|png|gif|jpeg)))?
手机号码:^[1][3,4,5,6,7,8,9][0-9]{9}$
身份证号:
15或18位身份证:^d{15}|d{18}$
15位身份证:^[1-9]d{7}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{3}$
18位身份证:^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{4}$
短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]w{5,17}$
强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
日期格式:^d{4}-d{1,2}-d{1,2}
IP地址:d+.d+.d+.d+
中文字符的正则表达式:[\u4e00-\u9fa5]