- 普通字符
\
/[abc]/g
\
[] :匹配 [...] 中的所有字符,例如 [abc] 匹配字符串 "china" 中所有的 a b c 字母。
\
/[^abc]/g
\
[^] :匹配除了 [...] 中字符的所有字符,例如 [^abc] 匹配字符串 "china" 中除了 a b c 字母的所有字母。
\
/[A-Z]/g
\
[A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。
\
/./g
\
. :匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。
\
/[\s\S]/g
\
[\s\S]:匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。
\
/\w/g
\
\w :匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
2. 非打印字符
\n :匹配一个换行符。
\r :匹配一个回车符。
\s :匹配任何空白字符,包括空格、换页符等等。
\S :匹配任何非空白字符。
3. 特殊字符
/g,匹配字符'abcdab',得到最后面的b
() :标记一个子表达式的开始和结束位置。
例子:/(ab)*/g,匹配字符'abcdab',得到两次ab
\
- : 匹配前面的子表达式零次或多次。
例子:/ab*/g,匹配字符'abcdab',得到两次ab
\
- : 匹配前面的子表达式一次或多次。
例子:/ab+/g,匹配字符'abcdab',得到两次ab
. : 匹配除换行符 \n 之外的任何单字符。
例子:/./g,匹配字符'abcd',得到a、b、c、d
[ : 标记一个中括号表达式的开始。
例子:/[a]/g,匹配字符'abcd',得到a
? : 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
例子:/ab(cd)?/g,匹配字符'abcd'、'ab',得到abcd、ab,就像模糊查询
\ : 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。
例子:/^/g,匹配字符'abcd',得到
^ :匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。
例子:/[1]/g,匹配字符'abcd',得到a
{ : 标记限定符表达式的开始。
例子:/{a}/g,匹配字符'abcd',得到a
| : 指明两项之间的一个选择。
例子:/[a|b]/g,匹配字符'abcd',得到所有a、b
4.限定符
\
- : 匹配前面的子表达式零次或多次。
例子:/a*/g,匹配字符'aaaaabc',得到所有aaaaa
{n} : n 是一个非负整数。匹配确定的 n 次。
例子:/a{1}/g,匹配字符'aaaaabc',得到一个a
{n,} : n 是一个非负整数。至少匹配n 次。
例子:/a{1,}/g,匹配字符'aaaaabc',得到所有aaaaa
{n,m} : m 和 n 均为非负整数,其中n <= m,最少匹配 n 次且最多匹配 m 次。
例子:/a{1,3}/g,匹配字符'aaaaabc',得到最多3个aaa
5.定位符
\b : 匹配一个单词边界,即字与空格间的位置。
例子:/a\b/g,匹配字符'a bc',得到空格独立出来的a
\B : 非单词边界匹配。
例子:/a\B/g,匹配字符'ab c',得到连续字符中的a
常用的15个JS正则表达式
//用户名正则,4到16位(字母,数字,下划线,减号)
var str = /[2]{4,16}$/;
\
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var str = /^. (?=.{6,})(?=. d)(?=. [A-Z])(?=. [a-z])(?=.*[!@#/;
\
//正整数正则
var str = /^d+$/;
\
//负整数正则
var str = /^-d+$/;
\
//整数正则
var str = /^-?d+$/;
\
//正数正则
var str = /^d*.?d+$/;
\
//负数正则
var str = /^-d*.?d+$/;
\
//数字正则
var str = /^-?d*.?d+$/;
\
//Email正则
var str = /^([A-Za-z0-9*-.])+@([A-Za-z0-9*-.])+.([A-Za-z]{2,4})$/;
\
//手机号正则
var str = /^1[34578]d{9}$/;
\
//身份证号(18位)正则
var str = /[3]d{5}(18|19|([23]d))d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]$/;
\
//URL正则
var str = /^((https?|ftp|file)://)?([da-z.-]+).([a-z.]{2,6})([/w .-] ) /?$/;
\
//ipv4地址正则
var str = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
\
//RGB Hex颜色正则
var str = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
\
//日期正则,简单判定,未做月份及日期的判定
var str = /^d{4}(-)d{1,2}1d{1,2}$/;
\
//QQ号正则,5至11位
var str = /[4][0-9]{4,10}$/;
\
//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线
var str = /[5]([-_a-zA-Z0-9]{5,19})+$/;
\
//车牌号正则
var str = /[6]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
\
//包含中文正则
var str = /[u4E00-u9FA5]/;