js正则基础

235 阅读3分钟
  1. 普通字符

\

/[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. 特殊字符
:匹配输入字符串的结尾位置。 例子:/b:匹配输入字符串的结尾位置。\ 例子:/b/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]/;