正则表达式

用来检索、替换某些符合某个模式的文本内容的一套规则

规则集

限定位数

1
let rule = /^.{n}$/

匹配数字

1
let rule = /^\d+$/

匹配字母

1
2
let rule = /^[a-zA-Z]+$/
/[a-z]/i.test('D') // true

匹配emoji

1
let rule = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g

匹配汉字

1
let rule = /^[\u4e00-\u9fa5]+$/

匹配以开头

1
let rule =/^/

匹配以结尾

1
let rule =/$/

全局匹配

1
/a/g.test('afafv') //true

次数匹配

1
2
/a{2}/g.test('afaafv') //true
/a{m,n}/g.test('afaafv') // 出现m到n次

单词匹配

1
/\bbrown\b/.test('browniu') //false

非严格匹配

1
/a/i.test('A') //true

实例

国内手机号

1
let rule = /^1[3-9][0-9]{9}$/

电子邮件

1
let rule = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/

营业执照

1
let rule = /(^\w{15}$)|(^\w{18}$)/

纯中/英文姓名

1
2
let rule1 = /^[\u4e00-\u9fa5]+$|^[a-zA-Z]+$/.test(e)
let rule2 = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g.test(e)

匹配指定汉字内容

先Unicode-16进制转码,再进行匹配

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let text = '嘻哈咕嘎叽'
// 汉字转unicode
function chToUnicode(e) {
let code = ''
let codes = [...e].map(item => {
return '\\u' + item.charCodeAt(0).toString(16)
})
codes.map(item => {
code = code + item.toString(16)
})
return code
}
//正则匹配
/chToUnicode(text)/.test(value)

相关

正则生成
实例大全